Ikatan Leksikal "ini" dalam Fungsi Anak Panah ES6
Fungsi anak panah dalam ES6 terkenal dengan tingkah laku pengikatan leksikal unik "ini. " Tidak seperti fungsi JavaScript lain yang "ini" terikat secara dinamik, fungsi anak panah mengekalkan skop leksikal, memberikan "ini" kepada nilai yang sama dengan konteks yang disertakan.
Untuk menggambarkan konsep ini, pertimbangkan kod berikut:
var testFunction = () => { console.log(this) }; testFunction();
Bertentangan dengan tingkah laku JavaScript tradisional di mana "ini" merujuk kepada objek global (tetingkap), fungsi anak panah menangkap nilai "ini" konteks yang disertakan. Dalam contoh ini, "ini" akan merujuk kepada skop global (tetingkap) memandangkan testFunction ditakrifkan di luar sebarang objek.
Selain itu, pengikatan leksikal memastikan "ini" kekal konsisten sepanjang hayat fungsi anak panah. Pertimbangkan contoh berikut:
function Person(){ this.age = 0; setInterval(() => { this.age++; // |this| properly refers to the person object }, 1000); } var p = new Person();
Di sini, fungsi anak panah menangkap nilai "ini" bagi objek Orang, membenarkannya mengakses dan mengubah suai sifatnya (dalam kes ini, menambah harta umur). Tingkah laku ini memastikan bahawa "ini" sentiasa merujuk kepada konteks yang betul, tidak kira cara fungsi anak panah dipanggil atau konteks pelaksanaan berubah.
Atas ialah kandungan terperinci Bagaimanakah Pengikatan Leksikal Mempengaruhi Kata Kunci 'ini' dalam Fungsi Anak Panah ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!