构建类的要领
Prototype.js
运用Class.create
来构建类Mootools.js
运用new Class
来构建类klass.js
运用klass
来构建类
继续父类的要领
Prototype.js
运用Class.create(ParentClassName,{//子类要领})
构建子类,继续父类,在与父类同名的要领中,第一个参数为$super
,要领体内运用$super(args)
来拓展父类的同名要领Mootools.js
运用new Class
一般构建类后,第一个要领运用Extends:ParentClassName
来继续父类,在子类的要领体中,运用this.parent(args)
来拓展父类的同名要领klass.js
运用ParentClassName.extend(//子类要领)
来继续父类,在子类的要领体中运用this.supr(args)
来拓展父类的同名要领
在类的表面给类增加函数,称号虽然不一样,但挪用的体式格局都一样,
Prototype.js
有addMethods
要领Mootools.js
有implement
要领klass.js
有methods
和implement
要领
纯真以构建类和继续类的体式格局,个人认为
Mootools.js
做的最好,子类和父类的构建体式格局一致,子类继续父类时要领清楚,而且在具有面向对象特性的言语,都有extends
关键字,而且父类也是在extends
的背面不习惯
Prototype.js
在每一个须要拓展父类的同名要领的第一个参数中加$super
,毕竟Mootools
声清楚明了父类后,在同名要领中只须要加this.parent(args)
,而不用在参数内再加上须要声明父类的强调klass
的构建子类的要领和其他两个都不一样,子类和父类的构建体式格局就直接加上父类的名字再加上extend
就能够,拓展父类的同名要领的时刻,运用this.supr(args)
来拓展。相称想吐槽的就是supr
这个称号了,klass
的源码中随处充满了这类不好好定名的参数,以字母o
,以至是what
来定名,真是迥殊的无语了,我会给作者提issue
的
关于源码中详细差别,待续
JS
面向对象系列