为什么/何时需要在ember.js中重新打开类?

dou*_*ack 7 ember.js

有时您App.Model.reopenClass()在模型(链接)上使用并且Ember指南谈论App.Router.reopen()(链接).从Ember指南:

reopen用于添加在类的所有实例中共享的实例方法和属性.它不会像在vanilla JavaScript中那样为特定的类实例添加方法和属性(不使用原型).

但是当您需要创建类方法或向类本身添加属性时,您可以使用reopenClass.

什么时候这是必要/有利的?是不是可以直接添加所有内容?

Kin*_*n2k 3

reopenClass 类似于向原型添加方法,而不是在类的每个实例上添加方法。您可以将它们视为静态变量/方法,而不是实例变量/方法。

这是一个重大的性能提升,并且可能对您正在解决的问题更有意义。