Rumah > hujung hadapan web > tutorial js > Bagaimanakah Pengikatan Leksikal Mempengaruhi Kata Kunci 'ini' dalam Fungsi Anak Panah ES6?

Bagaimanakah Pengikatan Leksikal Mempengaruhi Kata Kunci 'ini' dalam Fungsi Anak Panah ES6?

Barbara Streisand
Lepaskan: 2024-12-18 15:27:12
asal
440 orang telah melayarinya

How Does Lexical Binding Affect the

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();
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan