有时您App.Model.reopenClass()在模型(链接)上使用并且Ember指南谈论App.Router.reopen()(链接).从Ember指南:
reopen用于添加在类的所有实例中共享的实例方法和属性.它不会像在vanilla JavaScript中那样为特定的类实例添加方法和属性(不使用原型).
但是当您需要创建类方法或向类本身添加属性时,您可以使用reopenClass.
什么时候这是必要/有利的?是不是可以直接添加所有内容?
reopenClass 类似于向原型添加方法,而不是在类的每个实例上添加方法。您可以将它们视为静态变量/方法,而不是实例变量/方法。
这是一个重大的性能提升,并且可能对您正在解决的问题更有意义。