日期:2014-05-16 浏览次数:20384 次
//方式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(子类);