2012-12-12 2 views
5

エンバーのようなものを使用していますEmber.jsのようにfunction(){...} .property()をjavascriptでどのように複製しますか?以下のような</p> <pre><code>val: function(){ ... }.property() </code></pre> <p>や物事:

func: function(){ 
}.observes('someValue') 

私は、関数の最後にプロパティを追加することができるという事実は、非常にきれいだと思うし、それを複製したいですしかし、どこかでソースが実装されている場所を見つけられず、誰かが知っているのだろうかと疑問に思っています。

さらに重要なことは、ここでは正確に何が起こっているのですか?

答えて

5

Functions methodsの1つで、ちょうどcallまたはbindと同じです。

ネイティブFunction.prototypeオブジェクトを拡張することによって、他のメソッドを追加できます。それが良い練習であるかどうかは、discussableです。またthesearticlesを見てください。

+2

Emberの実装方法については、https://github.com/emberjs/ember.js/blob/master/packages/ember-runtime/lib/ext/function.jsを参照してください。これは良い考えではないと結論づけた場合、Emberは 'Ember.EXTEND_PROTOTYPES'をfalseに設定することでこの動作を設定可能にします。 –

+0

便利なリンクありがとう! – Bergi

関連する問題

 関連する問題