_açıklanması gerekir.() bindAll Underscore.js işlev
Bazı backbone.js öğreniyorum ve _.bindAll()
kullanıldığı örneklerini çok gördüm. Tüm backbone.js okuyun ve belgelere sayfa ne bir anlamda almak için deneyin underscore.js var, ama ben hala ne kadar çok bulanık. Burada alt çizgi var açıklama:
_.bindAll(object, [*methodNames])
Bu yöntemler numarası bağlar nesne, methodNames tarafından belirtilen, bu nesne bağlamında çalıştırılması çağrılan oldukları zaman. Çok kullanışlı gidiyoruz bağlama işlevi için olay işleyicileri olarak kullanılacak başka bir ile çağrılan olurdu bu oldukça işe yaramaz. Hayır methodNames eğer nesnenin tüm sağlanmaktadır fonksiyon özelliklerini bağlanacak .
var buttonView = { label : 'underscore', onClick : function(){ alert('clicked: ' this.label); }, onHover : function(){ console.log('hovering: ' this.label); } }; _.bindAll(buttonView); jQuery('#underscore_button').bind('click', buttonView.onClick); => When the button is clicked, this.label will have the correct value...
Eğer burada belki de başka bir örnek veya sözlü açıklamasını vererek yardım ederseniz, hiçbir şey mutluluk duyacağız. Daha öğreticiler veya örnekler aramaya çalıştım ama nil ihtiyacım hizmet açın. Çoğu kişi otomatik olarak ne yaptığını biliyor gibi görünüyor...
CEVAP
var Cow = function(name) {
this.name = name;
}
Cow.prototype.moo = function() {
document.getElementById('output').innerHTML = this.name ' moos' '<br>';
}
var cow1 = new Cow('alice');
var cow2 = new Cow('bob');
cow1.moo(); // alice moos
cow2.moo(); // bob moos
var func = cow1.moo;
func(); // not what you expect since the function is called with this===window
_.bindAll(cow1, 'moo');
func = cow1.moo;
func(); // alice moos
<div id="output" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
Ne yazık ki gerçek "tüm bağlama" işlevi işlevleri nesne üzerinde sadece çalışır. Bu geçiş için gereken prototip üzerinde tanımlanan bir işlevi vardır _.bindAll()
explicitely ek argüman olarak işlev adları.
Neyse, istediğin bir açıklama: Temelde bu fonksiyonu değiştirmek için bir işlev bir nesne ile bir işlevi aynı ada sahip ve davranış, ama aynı zamanda bağlı olan nesne, yani this === theObject
bile olmadan aradığı gibi bir yöntem (theObject.method()
).
nasıl kırmak için .underscore.js her i...
Neden c İCloneable uygulamak gerekir#?...
Nasıl kullanıcı tanımlı bir işlev açık...
Nasıl bir dosyayı satır satır okumak P...
Nasıl bir şablon motoru olarak undersc...