forked from finscn/GT-Class
-
Notifications
You must be signed in to change notification settings - Fork 0
GT-Class is a Classes-Framework for Javascript.
lin04com/GT-Class
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
这是一个利用prototype(原型,不是指那个叫做prototype.js的框架) ,在Javascript中实现类机制的简单框架. 虽然目前这类框架有很多, 但是在实际工作中,它们往往在功能/性能/易用性等方面并不能完全符合我的需求. 因此我结合了一些现有框架的特点 再加入一点点自己的原创的东西, 就有了这个框架. 当然 这个框架在并不能说是"集百家之长",它功能/性能/易用性等方面也不是最好,只能说它是一个"更符合我自己期望和使用习惯"的实现. 至于是否符合您的需求, 那就不敢保证了, 不过还是希望您可以提出宝贵的建议和意见, 谢谢了 :) . ========================= 简单示例: 1 创建类 [code="javascript"] //方式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(){ } } ); [/code] 2 继承 : [code="javascript"] 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(子类); [/code] ================= 更多详细的说明和用法 见 gt-class.js 和 gt-class-example.html 文件的源码. 源码中有较详细的注释和示例 ( 只有中文 ). 希望有朋友愿意能帮忙翻译成英文 :)
About
GT-Class is a Classes-Framework for Javascript.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published