在我們添加實例方法/屬性的標準餘燼混入例如(靜態)類方法:http://emberjs.com/api/classes/Ember.Mixin.html我可以添加使用EmberJS混入
隨着reopenClass我們可以添加類方法(靜態方法),給我們喜歡的東西:
UninstantiatedClass.findAll()
我可以創建一個混合添加類方法嗎?
在我們添加實例方法/屬性的標準餘燼混入例如(靜態)類方法:http://emberjs.com/api/classes/Ember.Mixin.html我可以添加使用EmberJS混入
隨着reopenClass我們可以添加類方法(靜態方法),給我們喜歡的東西:
UninstantiatedClass.findAll()
我可以創建一個混合添加類方法嗎?
是的,你可以!
一個reopenClass調用時只需提供混入:
// The mixin itself
FooMixin = Em.Mixin.create({
...
});
// Mix in at the instance level
BarClass = Em.Object.extend(FooMixin, {
...
});
// Mix in at the class level
BarClass.reopenClass(FooMixin, {
...
});
我碰到這個問題,迷迷糊糊的歡迎,並發現了這個正在話語完成項目。
希望這會有所幫助!
首先,我還在學習EmberJS。 :)
我有同樣的問題:如何將常見的類方法添加到類。
我的理解是,你可以不使用混入這樣做(警告:我可能是錯的),但你可以使用純子做。
看看這個jsbin。 App.Soldier是App.Person的一個子類,它包含實例和類方法。這些都可以App.Soldier。
如果鍵入在控制檯這些命令:
x = App.Soldier.create();
x.hello(); // => "hello world!"
x.fire(); // => "Laser gun, pew! pew!"
App.Soldier.identifyYourself(); // => "I'm a humanoid carbon unit"
這種方法的缺點是,有人可以隨意實例化一個App.Person對象。而且,你不能繼承多個父類。
無論如何,我希望這可以幫助
謝謝大衛。這也是我的理解。我結束了寫一個工廠來生成這些類。 –