Rumah > hujung hadapan web > tutorial js > Bagaimanakah Fungsi Anak Panah Mengendalikan Kata Kunci `ini` dalam JavaScript?

Bagaimanakah Fungsi Anak Panah Mengendalikan Kata Kunci `ini` dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-12-10 10:19:10
asal
483 orang telah melayarinya

How Do Arrow Functions Handle the `this` Keyword in JavaScript?

Fungsi Anak panah dan 'ini'

Dalam ES6, fungsi anak panah memperkenalkan pendekatan baharu kepada definisi kaedah. Walau bagaimanapun, terdapat perbezaan ketara antara fungsi anak panah dan fungsi tradisional apabila ia datang untuk mengakses kata kunci 'ini'.

Isunya:

Pertimbangkan kod berikut:

var person = {
  name: "jason",

  shout: () => console.log("my name is ", this.name)
}

person.shout() // Should print out my name is jason
Salin selepas log masuk

Walaupun hasil yang dimaksudkan ialah mencetak "nama saya jason," konsol hanya mengeluarkan "nama saya." Ini kerana fungsi anak panah berkelakuan berbeza daripada fungsi tradisional dari segi pengikatan 'ini'.

Penjelasan:

Tidak seperti fungsi tradisional, fungsi anak panah tidak mengikat ' kata kunci ini kepada skop yang mengandungi. Sebaliknya, mereka mewarisi ikatan 'ini' dari konteks sekeliling. Dalam contoh di atas, 'ini' dalam fungsi anak panah merujuk kepada objek global, bukan objek 'orang'.

Penyelesaian:

Terdapat beberapa cara untuk menangani isu ini:

  1. Gunakan Bound Fungsi:
// Bind 'this' to the 'person' object
var shoutBound = function() { console.log("my name is ", this.name); }.bind(person);

// Assign the bound function to the 'shout' property
person.shout = shoutBound;
Salin selepas log masuk
  1. Gunakan Fungsi Tradisional:
// Define a traditional function with 'this' bound to 'person'
person.shout = function() { console.log("my name is ", this.name); };
Salin selepas log masuk
  1. Gunakan Kaedah ES6 Pengisytiharan:
// ES6 method declaration implicitly binds 'this' to the object
person = {
  name: "jason",

  shout() {
    console.log("my name is ", this.name);
  }
};
Salin selepas log masuk

Dengan memahami gelagat berbeza fungsi anak panah berkenaan pengikatan 'ini', anda boleh menulis kod yang berkesan dan fleksibel dalam ES6.

Atas ialah kandungan terperinci Bagaimanakah Fungsi Anak Panah Mengendalikan Kata Kunci `ini` dalam JavaScript?. 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