Olay işleyicileri için geri aramalar kapsamını değiştirir olarak örnek yöntemleri kullanarak this
gelen "My örneğine" için "sadece geri arama ne istedilerse" . Yani kodum şöyle görünüyor
function MyObject() {
this.doSomething = function() {
...
}
var self = this
$('#foobar').bind('click', function(){
self.doSomethng()
// this.doSomething() would not work here
})
}
Çalışıyor, ama bunu yapmanın en iyi yolu bu mu? Bana tuhaf geliyor.
this
JavaScript dinamiktir fonksiyon zaman belirlenir. Adlandırılır bunun bildirildi değilken,."
self === this
. Bu nedenle, self
yerel bağlamlarda mantıklı ve takip ediyor.
self
Birwindow.self
nesne olduğundan kaçınmalısınız ve kendi varlığınızı beyan etmeyi unutursanızself
(örneğin bazı kodları hareket ettirirken) yanlışlıkla bunu kullanabilirsiniz . Bu nokta / hata ayıklama için can sıkıcı olabilir. Gibi bir şey kullanmak daha iyi_this
.