8

標準の ember mixin の例では、インスタンス メソッド/プロパティを追加します: http://emberjs.com/api/classes/Ember.Mixin.html

renameClass を使用すると、次のようなクラス メソッド (静的メソッド) を追加できます。

UninstantiatedClass.findAll()

クラス メソッドを追加する mixin を作成できますか?

4

2 に答える 2

1

まず第一に、私はまだ EmberJS を学んでいます。:)

私は同じ問題を抱えていました:クラスに共通のクラスメソッドを追加する方法。

私の理解では、Mixins を使用してそれを行うことはできません (警告: 間違っている可能性があります) が、単純なサブクラスを使用して行うことはできます。

この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 オブジェクトを自由にインスタンス化できることです。さらに、複数の親クラスをサブクラス化することはできません。

とにかく、これが役立つことを願っています

于 2013-07-04T07:51:40.447 に答える