Reopening Classes and Instances
开发者不需要一次就把class定义的完整. 通过reopen( ),我们可以在已存在的类中定义新的属性.
Person.reopen({
isPerson: true
});
Person.create( ).get( 'isPerson' ); //true
可以在使用reopen( )的时候覆写已存在的方法:
Person.reopen({
// override 'say' to add an ! at the end
say (thing) {
this._super(thing +'!');
}
});
通过reopen( )添加的的属性或方法是实例方法(每个实例都有,但是都是独立的).
通过reopenClass( )添加的属性或方法是类方法(static方法).
// add static poreperty to class
Person.reopenClass({
isPerson: false
});
// override property of existing and future Person instances
Person.reopen({
isperson: true
});
Person.isPerson;// false - because it is static property created by `reopenClass`
Person.create( ).get('isperson');// true
本篇完!
Ember Js 一个用于创建 web 应用的 JavaScript MVC 框架,采用基于字符串的Handlebars模板,支持双向绑定、观察者模式、计算属性(依赖其他属性动态变化)、自动更新模板、路由控制、状态机等。 Ember使用自身扩展的类来创建Ember对象、数组、字符串、函数,提供大量方法与属性用于操作。
每一个Ember应用都使用各自的命名空间,避免冲突。
Ember采用可嵌套的视图层,使视图变得有层次。
领取专属 10元无门槛券
私享最新 技术干货