Menggunakan metode instan sebagai panggilan balik untuk penangan acara mengubah ruang lingkup thisdari "Contoh saya" menjadi "Apa pun yang disebut dengan panggilan balik" . Jadi kode saya terlihat seperti ini
function MyObject() {
this.doSomething = function() {
...
}
var self = this
$('#foobar').bind('click', function(){
self.doSomethng()
// this.doSomething() would not work here
})
}
Ini bekerja, tetapi apakah itu cara terbaik untuk melakukannya? Itu terlihat aneh bagiku.
thisdinamis dalam JavaScript. Ini ditentukan saat fungsi dipanggil , bukan saat dideklarasikan."
self === this. Oleh karena itu, selfdalam konteks lokal masuk akal dan mengikuti pola.
selfkarena adawindow.selfobjek dan Anda dapat menggunakannya secara tidak sengaja jika Anda lupa untuk mendeklarasikanselfvar Anda sendiri (misalnya ketika memindahkan beberapa kode). Ini bisa menjengkelkan untuk menemukan / men-debug. Lebih baik menggunakan sesuatu seperti_this.