Misteri Penunjuk "ini" JavaScript dalam Fungsi Bersarang
Dalam coretan kod JavaScript, anda telah menemui tingkah laku yang tidak dijangka mengenai "ini " penunjuk dalam fungsi bersarang. Walaupun mentakrifkan fungsi bersarang dalam kaedah objek, penunjuk "ini" di dalam fungsi bersarang menghala ke objek "tetingkap" global.
Kelakuan penuding "ini" ditentukan oleh kaedah seruan fungsi dalam JavaScript. Terdapat tiga kaedah utama:
Invokasi Langsung: someThing.someFunction(arg1, arg2, argN)
Function Call with call(): someFunction.call(someThing, arg1, arg2, argN)
Fungsi Panggilan dengan apply() : someFunction.apply(someThing, [arg1, arg2, argN])
Dalam contoh yang anda berikan, fungsi bersarang digunakan tanpa sebarang kaedah penyeruan fungsi eksplisit. Akibatnya, penunjuk "ini" menjadi lalai kepada objek global, yang biasanya merupakan objek "tetingkap" dalam persekitaran penyemak imbas.
Untuk menentukan gelagat penunjuk "ini" secara eksplisit, anda boleh menggunakan pengubahsuaian berikut :
Dengan menggunakan mana-mana kaedah ini , anda boleh mengawal kelakuan penunjuk "ini" dalam fungsi bersarang dan memastikan ia merujuk kepada objek yang diingini.
Atas ialah kandungan terperinci Mengapa Penunjuk \'ini\' Menuding ke Objek Global dalam Fungsi JavaScript Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!