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

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

Linda Hamilton
Linda Hamiltonasal
2024-12-18 02:30:10465semak imbas

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

Memahami 'var that = this;' dalam JavaScript

Dalam JavaScript, kata kunci 'ini' mewakili objek semasa. Menetapkan 'ini' kepada 'var that' membolehkan pembangun mengekalkan rujukan kepada rujukan objek asal yang boleh diakses kemudian, walaupun dalam fungsi bersarang di mana 'ini' mungkin berubah.

Pertimbangkan coretan kod berikut:

function Somefunction(){
   var that = this; 
   ... 
}

Di sini, menetapkan 'ini' kepada 'itu' memastikan bahawa dalam skop 'Somefunction', 'itu' sentiasa merujuk kepada contoh objek asal. Ini berfaedah apabila bekerja dengan penutupan atau pengendali acara di mana rujukan 'ini' mungkin berubah selepas menggunakan fungsi bersarang.

Untuk menggambarkan, katakan anda mempunyai fungsi yang mendengar acara 'klik' pada elemen:

var colours = ['red', 'green', 'blue'];
document.getElementById('element').addEventListener('click', function() {
    // this is a reference to the element clicked on

    var that = this;

    colours.forEach(function() {
        // this is undefined
        // that is a reference to the element clicked on
    });
});

Dalam pengendali acara, 'ini' merujuk kepada elemen yang telah diklik, tetapi di dalam bahagian dalam 'untukSetiap' fungsi, 'ini' menjadi tidak ditentukan. Dengan menyalinkannya kepada 'itu', anda masih boleh mengakses rujukan asal kepada elemen yang diklik.

Kesimpulannya, 'var that = this;' memastikan bahawa rujukan yang konsisten kepada objek semasa dikekalkan, menjadikannya sangat berguna dalam pengendalian peristiwa atau senario penutupan di mana 'ini' boleh berubah secara dinamik. Walau bagaimanapun, pertimbangkan untuk menggunakan alias yang lebih deskriptif untuk kejelasan, seperti 'clickedEl' atau 'currentElement', untuk menjadikan niat kod lebih jelas.

Atas ialah kandungan terperinci Mengapa Gunakan `var that = this;` dalam JavaScript?. 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