zoukankan      html  css  js  c++  java
  • Ext JS学习第五天 我们所熟悉的javascript(四)

    此文用来记录学习笔记;

    •javascript之对象、面向对象
    •可能对于高级语言你可能了解甚至精通OOP面向对象,那么对于javascript你又熟悉多少呢?我们一起来学习javascript面向对象,这样非常有帮助我们理解Ext的基础架构,Ext本身就是一个JS面向对象的框架。
    •使用json对象(JavaScript Object Notation)
    –JS对象的特性
    –对于js来说json对象非常的重要,我们要学会如何操作json对象
    •面向对象的概念
    –如何定义一个类、如何实例化对象、如何扩展对象(原型prototype)
    –单体模式:简单单体、闭包单体、惰性单体、分支单体
    –对象的定义其他方式(工厂模型、稳妥对象、聚合对象)
    –原型的使用、原型链
    –原型的继承(多种方式实现:组合继承、借用构造函数继承、混合继承、掺元类等)
    –链式编程
    –javascript契约书:接口(注释法、属性检测法、鸭式辨型法)
    •设计模式:如果能够掌握JS的设计模式,我相信在以后的Ext学习中,慢慢的研读,体会Ext底层代码的设计,是非常有帮助的。
     
    附上部分栗子代码
     1 Ext.onReady(function(){
     2     //var obj = new Object();
     3     var obj = {name:'z3' , age:20};    //json对象
     4     obj.sex = '';        //新增属性
     5     obj.age = 25 ;        //修改属性的值
     6     delete obj.name ;    //删除对象的属性
     7     
     8     //枚举对象内置属性的循环
     9     for( var attr in obj){
    10         alert(attr + " : " + obj[attr]);
    11     }
    12 
    13     //定义了一个js的类
    14     var Person = function(name , age){
    15         this.name = name ; 
    16         this.age  = age ;
    17         // private 
    18         var _sex = '';    //js的私有属性
    19         this.getSex = function(){
    20             return _sex ;            
    21         };
    22         this.setSex = function(sex){
    23             _sex = sex ;
    24         };
    25     };
    26 //    Person.prototype.id = 10 ;  
    27 //    Person.prototype.method = function(){
    28 //        alert(this.age);
    29 //    };
    30     
    31     //原型对象的构造器 总是指向当前对象的模板
    32     Person.prototype = {
    33         constructor:Person ,
    34         id:10 , 
    35         method : function(){
    36             alert('method....');
    37         } 
    38     };    
    39 
    40     
    41     //实例化一个对象
    42     var p = new Person('张三',30);
    43     alert(p.name);
    44     alert(p.id);
    45     p.method();
    46     
    47     
    48     //单体模式: 简单单体
    49     var SXT = {};
    50     SXT.Array = {
    51         each:function(){
    52             alert('each....');
    53         },
    54         filter:function(){
    55             alert('filter...');
    56         }
    57     };
    58     SXT.staticMethod = function(){
    59         alert('我是单体下的静态方法!');
    60     };
    61     
    62     SXT.Array.each();
    63     SXT.staticMethod();
    64     
    65     //单体模式: 闭包单体
    66     var SXT = (function(){
    67         var Array = {
    68             each:function(){
    69                 alert('each...');
    70             }
    71         };
    72         return {
    73             arrayEach:function(){
    74                 Array.each();
    75             }
    76         };
    77     })();
    78     SXT.arrayEach();
    79     
    80 });

    推荐给各位推荐个优美文章网www.fishcmonkey.com,学习之余提高文学修养

  • 相关阅读:
    libxml2 解析文档的例子
    FreeRTOS之任务优先级的分配
    idea中快速重写父类方法
    组件里面调用组建的方法
    sproot 注解学习记录 (含给实现类起名字的方法)
    直播技术没有那么神秘,你也可以DIY
    Java服务端API接口统一加密和解密
    把对象交给spring管理的3种方法及经典应用
    Dart空安全的底层原理与适配
    Dart 中 final和const 区别
  • 原文地址:https://www.cnblogs.com/lisr/p/3925875.html
Copyright © 2011-2022 走看看