Rumah >hujung hadapan web >tutorial js >Mengapa Gunakan `var that = this;` dalam Fungsi JavaScript Bersarang?

Mengapa Gunakan `var that = this;` dalam Fungsi JavaScript Bersarang?

Linda Hamilton
Linda Hamiltonasal
2024-12-05 05:50:10296semak imbas

Why Use `var that = this;` in Nested JavaScript Functions?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn