emberjs重写补充类之reopen方法和reopenClass方法
无需一次性将类定义完全,你可以使用reopen
方法来重新打开(reopen)一个类并为其定义新的属性。
Person.reopen({ isPerson: true }); Person.create().get(‘isPerson‘) // true
当使用reopen
时,你也同样可以覆写已经存在的方法并调用this._super
。
Person.reopen({ // override `say` to add an ! at the end say: function(thing) { this._super(thing + "!"); } });
正如你所见,reopen
是用来为实例添加属性和方法的。而当你需要创建类的方法或为类本身添加属性时,则可使用reopenClass
。
Person.reopenClass({
createMan: function() {
return Person.create({isMan: true})
}
});
Person.createMan().get(‘isMan‘) // true Person类的createMan方法用来创建Person类的一个实例
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。