Mengakses ini dalam Nested Functions: Membongkar var that = this;
Dalam JavaScript, memahami skop dan nilai ini adalah penting. Pertimbangkan coretan kod berikut:
function Somefunction() { var that = this; ... }
Mengapakah itu diisytiharkan dan diberikan nilai ini?
Untuk memahami tujuan teknik ini, mari kita bayangkan senario:
var colours = ['red', 'green', 'blue']; document.getElementById('element').addEventListener('click', function() { // this points to the clicked element var that = this; colours.forEach(function() { // this is undefined within this inner function // that still refers to the clicked element }); });
ini dalam panggilan balik forEach merujuk kepada elemen tatasusunan semasa, bukan elemen yang diklik. Walau bagaimanapun, itu mengekalkan rujukan kepada elemen yang diklik.
Apabila anda beralih ke fungsi bersarang, skop ini boleh berubah, menjadikannya sukar untuk mengakses nilai asal. Menyamakan ini kepada itu memastikan bahawa nilai asal masih boleh diakses.
Perhatikan bahawa menggunakan itu sebagai alias tidak selalunya optimum. Adalah lebih baik untuk menggunakan alias yang lebih deskriptif yang menunjukkan dengan jelas apa yang dirujuk, terutamanya dalam fungsi yang kompleks.
Atas ialah kandungan terperinci Mengapa Gunakan `var that = this;` dalam Fungsi JavaScript Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!