Memahami "ini" dalam Fungsi Anak Panah ES6
Dalam JavaScript, nilai ini bergantung pada konteks di mana ia digunakan. Apabila bekerja dengan fungsi anak panah, konsep "terikat secara leksikal" menjadi relevan, yang menentukan tingkah laku ini.
Fungsi anak panah mewarisi nilai ini daripada konteks yang dilampirkan, di mana ia ditakrifkan. Tidak seperti fungsi biasa, fungsi anak panah tidak mencipta skop mereka sendiri untuk ini. Pertimbangkan kod berikut:
var testFunction = () => { console.log(this); }; testFunction();
Di sini, fungsi anak panah testFunction menangkap nilai ini daripada konteks lampirannya, yang dalam kes ini ialah skop global. Oleh itu, console.log(this) akan mengeluarkan objek global.
Sebaliknya, fungsi biasa boleh mencipta skop mereka sendiri untuk ini. Contohnya:
function Person() { this.age = 0; const increaseAge = function() { this.age++; // `this` refers to the Person object }; increaseAge(); } const p = new Person();
Dalam contoh ini, fungsi increaseAge bersarang dalam pembina Orang. Apabila ia dipanggil, ini merujuk kepada contoh kelas Orang kerana ia dicipta dengan kata kunci baharu.
Untuk meringkaskan, fungsi anak panah mewarisi nilai ini daripada konteks lampirannya, memastikan ia kekal konsisten dengan kod sekeliling. Tingkah laku ini berbeza daripada fungsi biasa, yang mencipta skop mereka sendiri untuk ini. Memahami perbezaan utama ini adalah penting untuk mengendalikan perkara ini dengan betul dalam fungsi anak panah dalam pembangunan JavaScript.
Atas ialah kandungan terperinci Bagaimanakah `ini` Berfungsi Berbeza dalam Fungsi Anak Panah ES6 Berbanding dengan Fungsi Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!