2013-05-20 43 views

回答

13

是的,你可以!

一個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, { 
    ... 
}); 

我碰到這個問題,迷迷糊糊的歡迎,並發現了這個正在話語完成項目。

希望這會有所幫助!

1

首先,我還在學習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對象。而且,你不能繼承多個父類。

無論如何,我希望這可以幫助

+0

謝謝大衛。這也是我的理解。我結束了寫一個工廠來生成這些類。 –

相關問題