Rumah > hujung hadapan web > tutorial js > Bagaimanakah Kata Kunci `ini` Berkelakuan Berbeza dalam Fungsi JavaScript Berdasarkan Corak Invocation?

Bagaimanakah Kata Kunci `ini` Berkelakuan Berbeza dalam Fungsi JavaScript Berdasarkan Corak Invocation?

Linda Hamilton
Lepaskan: 2024-12-13 17:30:20
asal
347 orang telah melayarinya

How Does the `this` Keyword Behave Differently in JavaScript Functions Based on Invocation Patterns?

Gelagat Kontekstual Kata Kunci "ini" dalam Fungsi

Seperti yang anda perhatikan, kata kunci "ini" boleh mempamerkan tingkah laku yang tidak dijangka dalam JavaScript fungsi. Tingkah laku ini berpunca daripada sifat dinamik JavaScript, di mana fungsi tidak terikat pada objek tertentu sebaliknya mengikat "ini" ditentukan oleh corak penyembahan.

Dalam kaedah kelas, "ini" merujuk kepada contoh kelas di mana kaedah itu dipanggil. Walau bagaimanapun, apabila dipanggil terus sebagai fungsi (tanpa pengendali titik sebelumnya), "ini" menjadi lalai kepada objek global (yang biasanya objek tetingkap dalam penyemak imbas).

Corak Seruan yang Memberi Impak kepada "ini" :

  • Sebagai Kaedah: kata kunci "ini" terikat pada objek yang memiliki kaedah.
  • Sebagai Fungsi: "ini" terikat pada objek global, mengakibatkan tingkah laku tidak konsisten yang anda hadapi.
  • Sebagai Pembina (dengan "baru"): Objek baharu dicipta dan "ini" ialah terikat pada objek itu.
  • Dengan "apply()": Membenarkan kawalan eksplisit ke atas nilai "ini" dan juga membenarkan menghantar pelbagai argumen.

Sebab Di Sebalik Reka Bentuk:

Walaupun sesetengah pihak mungkin menganggap tingkah laku mengikat "ini" sewenang-wenangnya, ia sejajar dengan falsafah reka bentuk JavaScript yang menekankan fleksibiliti berbanding penaipan yang ketat. Fungsi boleh digunakan semula dalam pelbagai konteks dan pengikatan "ini" boleh dilaraskan dengan sewajarnya menggunakan teknik seperti "var that = this".

Sebab yang mendasari tingkah laku ini ialah kekurangan kelas sebenar dalam JavaScript. Sebaliknya, objek dan fungsi digunakan untuk mencipta binaan berorientasikan objek. Ini membolehkan pembangun mentakrifkan hierarki warisan tersuai dan mencipta serta mengubah suai objek secara dinamik pada masa jalan.

Ringkasan:

Kata kunci "ini" dalam fungsi JavaScript terikat secara dinamik berdasarkan corak seruan. Dalam kaedah kelas, ia merujuk kepada contoh kelas, manakala dalam panggilan fungsi langsung, ia merujuk kepada objek global. Teknik seperti menetapkan "var that = this" boleh membantu mengurus pengikatan "ini" dalam panggilan balik dan situasi kompleks lain yang corak seruan tidak kelihatan.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `ini` Berkelakuan Berbeza dalam Fungsi JavaScript Berdasarkan Corak Invocation?. 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