2012-12-12 8 views
5

Ember utilizza qualcosa di simile:Come si replica qualcosa come function() {...} .property() in javascript come in Ember.js?

val: function(){ 
    ... 
}.property() 

e cose del genere:

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

Credo che il fatto che è possibile aggiungere un alloggio ai fine di una funzione è abbastanza pulito e vorrei replicare che . Tuttavia, non sono riuscito a trovare dove una di queste cose sia implementata nella fonte e mi chiedo se qualcuno lo sa?

Inoltre, ancora più importante, che cosa sta succedendo esattamente qui?

risposta

5

È uno degli Functions methods, come call o bind.

È possibile aggiungere altri metodi estendendo l'oggetto nativo Function.prototype. Se questa è una buona pratica è discussable, però; anche dare un'occhiata a thesearticles.

+2

Se si desidera vedere come Ember implementa questo, consultare https://github.com/emberjs/ember.js/blob/master/packages/ember-runtime/lib/ext/function.js. Inoltre, se si conclude che non è una buona idea, Ember rende questo comportamento configurabile impostando 'Ember.EXTEND_PROTOTYPES' su false. –

+0

Grazie per il link utile! – Bergi