Ext的基本概念及一个实例

来源:互联网 发布:时代互联 域名转出 编辑:程序博客网 时间:2024/05/23 01:23
// ============================================= Ext 的 命 名 空 间 
Ext.namespace("Ext.Test");
//在当前命名空间(Ext.Test)下创建一个Person类,这个类有一个带参数的构造函数。如果想要创建这个Person类对象时,以这种格式传递参数:{name:"luozhiguo",age:"23"}
// ============================================= Ext 构 造 方 法 
Ext.Test.Person = function(_cfg){
   //Ext.apply,通过此方法可以为某一个对象设置属性,如这里为本对象(Person)设置属性。
   Ext.apply(this,_cfg);
}
// ============================================= 设 置 属 性 
//这里通过Ext.apply方法为Ext.TestPerson设置属性或方法等,Ext.Test.Person.prototype代表一个对象的原型,这里在Person对象上设置了name和age属性和一个print方法。
Ext.apply(Ext.Test.Person.prototype,{
     name:"luozhiguo",
     age:"23",
     job:"JAVA工程师",
     print:function(){
        alert(String.format("姓名:{0},年龄:{1}",this.name,this.age));
}
});

// ============================================= 静 态 方 法 
//创建一个名为print的静态方法.
Ext.Test.Person.print = function(_name,_age){
alert(_name);
alert(_age);
//创建Person类对象,并传递相应的参数
    var p = new Ext.Test.Person({name:_name,age:_age});
// p.name = _name;
// p.age = _age;
p.print();
}


//子类,Student继承了Person类
Ext.namespace("Ext.Test");
Ext.Test.Student = function(){}
// ============================================= 继        承 
Ext.extend(Ext.Test.Student,Ext.Test.Person,{
// ============================================= Ext 属 性 重 写 
       name:"Sky",
  age:"22",
  job:"工程师",
// ============================================= Ext 方 法 重 写 
  print:function(){
     alert(String.format("Name:{0},Age:{1},Job:{2}",this.name,this.age,this.job));
  }
});

// ------------------------------------------------------------------------------------------------------------
//--------------------------------------------------- 知  识  点-----------------------------------------------
// ------------------------------------------------------------------------------------------------------------
// * 类对象创建和方法调用:
//       Ext中的调用和JAVA中的调用类似,Ext中的对象创建方式是:      var obj = 命名空间.类名();   
//       调用某个对象上的方法时,和JAVA中的形式一样,                对象名.方法名();
// 1.命名空间        (1).Ext.namespace ,和JAVA中的包类似,代表要在这个包下创建类,
//                   (2).还可以为一个命名空间取别名,如:Et = Ext.Test;  这样就可以直接通过命名空间的别名来调用 //                       它下面的类了。如:Et.Person.print(); 表示要调用Person类下的print方法。 
//                       *为命名空间取别名的规则是  首字母大写 Et                 
// 2.类属性           如上:name:"luozhiguo", age:"23"
// 3.类方法           如上:print:function(){........}
// 4.静太方法         如上:Ext.Test.Person.print
// 5.构造方法         Ext.Test.Person = function(_cfg){ Ext.apply(this,_cfg)}
// 6.类继承           通过Ext.extend(a,b,{})实现继承,a代表子类,b代表父类,{}花括号里的参数应该是子类要重写父 //                    类的那些方法或变量。
// 7.类实例方法重写   方法重写,很简单,只要在Ext.extend(a,b,{})参数中的{}花括号里定义想要重写父类的方法或变量 //                    既可。
//                    如下面一个例子,子类Student继承了父类Person,并且重写了父类的三个变量和一个print方法
//                    Ext.namespace("Ext.Test");
//  Ext.Test.Student = function(){}
//  Ext.extend(Ext.Test.Student,Ext.Test.Person,{
// name:"Sky",
//       age:"22",
//     job:"工程师",
//     print:function(){
//                            alert(String.format("Name:{0},Age:{1},Job:{2}",this.name,this.age,this.job));
//     }
//      });
// 9.类别名           为一个类取别名,方法和为命名空间取别名一样,如 PERSON = Ext.Test.Person
//                        * 为类取别名的规格是  所有字母大写
// 10.事件队列      
//    事件队列的定义:    对于外界影响的支应,在EXTJS中还支持事件队列模式。由Ext.util.Observable类支持。
//    Ext中定义一个事件需要三个步骤:
//        (1)定义事件(this.addEvents)
//        (2)发布事件(this.fireEvent)
//        (3)定阅事件(带有事件类的对象.on())
原创粉丝点击