日期:2014-05-16 浏览次数:20468 次
.
//方式1 :
var Foo = GT.Class.create( function(args){
/* 构造函数 */
},
{
classname : 'Foo', //类名,可选. 设置后,可通过 GT.Class.forName(classname) 得到类.
//以下为类的成员
att1 : 1 ,
att2 : 2 ,
method1 : function(){ },
method2 : function(){ }
} );
//方式2 :
var Foo =function(args){
/* 构造函数 */
}
Foo.prototype.att1=1;
Foo.prototype.method1=function(){ };
GT.Class.create( Foo,
//注意:之前Foo.prototype里定义的成员,会被这里定义的"同名成员"覆盖.
{
classname : 'Foo', //类名,可选,
//以下为类的成员
att2 : 2 ,
method2 : function(){ }
} );
var Bar = GT.Class.create( function(args){
/* 构造函数 */
},
{
classname : 'Bar', //类名,可选,
//以下为类的成员
att2 : 3 ,
// 覆盖了父类里的同名方法
method1 : function(a){
this.$super(a); //调用父类的同名方法
},
method3 : function(a3){
Bar.$superclass.method2.apply(this, [a3]); //调用父类里的其他方法.
/* 此处要注意
Bar.$superclass.method2.apply(this, [a3])
Bar.$superclass.method2(a3)
this.method2(a3)
三者的异同
*/
}
},
Foo //父类
);
//如果子类没什么要做的, 可以直接
var Bar = GT.Class.create( function(args){
/* 构造函数 */
},
Foo //父类
);
// 以上为 直接创建一个"某父类的子类", 我们也可以先创建好两个类, 然后后期再指定继承关系.
// "子类"必须是通过 GT.Class.create创建的类
子类.$extend(父类);
// "父类"必须是通过 GT.Class.create创建的类
父类.$create(子类);
