extjs2+的基本oop特性

刚看了几个extjs的基本是视频讲的是extjs的仿oop特性,代码有点bt也很妙,记下来为了不让自己忘记。

 

1.支持命名空间

Ext.namespace("Ext.dojochina");

这句代码相当于java中的

package Ext.dojochina;

把ext对象放到不同的包里加以区分。当然引用的时候是要加上命名空间了。

 

2.支持类实例属性

Ext.dojochina.Person = Ext.emptyFn;

这句代码是说创建了一个Person空对象,相当于

Ext.dojochina.Person =function(){};

 

Ext.apply(Ext.dojochina.Person.prototype,{name:"",sex:"",print:function(){alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));}});

这里是给Person对象赋予属性。包括字段和方法。

3.支持类实例方法

3.支持类静态方法

Ext.dojochina.Person.print = function(name,sex)
{
    var person=new Ext.dojochina.Person();
    person.name=name;
    person.sex=sex;
    person.print();
};

这里是定义了Person的一个静态方法。

 

4.支持构造方法

Ext.dojochina.Person=function(cfg)
{
    Ext.apply(this,cfg);
    Ext.apply(this,{print:function(){alert(String.format("姓名:{0},性别:{1}",this.name,this.sex))}});
   
}

这里是定义了Person的一个构造方法。

 

5.支持类继承, 方法重写

Person.js:

Ext.namespace("Ext.dojochina");
Dojo=Ext.dojochina;
Dojo.Person=function(){};
PER=dojo.Dojo;
Ext.apply(PER.prototype,{name:"路人甲",role:"人",sex:"春哥",print:function(){alert(String.format("{0}是一个{1}性别是{2}",this.name,this.role,this.sex))}});

Student.js:

Ext.namespace("Ext.dojochina");

Ext.dojochina.Student=function(cfg)
{
    Ext.apply(this,cfg);
};

Ext.extend(Dojo.Student,Dojo.Person,{role:"学生",print:function(){alert(String.format("{0} is a {1}",this.role,this.sex));}});

这里是ext的继承,也包括的方法的重写


7.支持命名空间别名, 类别名

Ext.namespace("Ext.dojochina");
Dojo=Ext.dojochina;//命名空间别名
Dojo.Person=function(){};
PER=dojo.Dojo;//类别名

 

9.支持事件队列

 

 

命名空间的别名规则是首字母大些其他字母小写;类别名字符全部大写。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值