sayısız yerlerde desen bu tür vardır bazı kod üzerinden geldim:this.someFunction.call'ın amacı nedir (bu, param);
this.someFunction.call(this, param);
ama bana desen bazen içinde görünen
this.someFunction(param)
yazarak sadece daha ayrıntılı bir yol görünüyor geri arama olarak sağlanan bir işlev. İlgili olması durumunda Backbone kullanılacaktır. Böyle bir şey:
Backbone.View.extend({
// other stuff ...
someFunction: function(param) {
// ...
},
anotherFunction: function() {
this.collection.on("some_event", function() {
this.someFunction.call(this, param);
});
}
});
desen aslında this.someFunction(param)
eşdeğer değilse veya kapatma doğru this
yakalayan hakkında değil sadece sinir birisi oldu bir etkisi var mıdır? Herhangi bir yorumlara için
teşekkürler!
* "kapatılması doğru yakalayan hakkında değil sadece sinir veya bir insanı' this'" *' this' fonksiyonları içinde özel bir değerdir ve kapsam etkilenmez. (istisna: ES6 ok fonksiyonları). Burada normal işlev çağrısı üzerinden '.call' tercih etmek için bir neden göremiyorum. –
Her ikisi de muhtemelen bir çeşit kodlama kuralıyla eşdeğerdir. Komut dosyaları da sık sık gizleniyor. – kidwon
çağrı() kullanarak bazı ek yük ekler ve özellikle döngülerde belirgin olan yürütmeyi yavaşlatır. Bu kod aslında, çağndan _this_ 'i kilitleyen 'this.collection.on (" some_event ", this.someFunction.bind (this, param)) olarak yazılabilir. omurga, _this_ nasıl kullanıldığına bağlı olarak, o anda doğru _this_'a sahip olmak için, anotherFunction() içindeki bağlı değeri çoğaltmanız gerekebilir. – dandavis