Rumah > hujung hadapan web > tutorial js > Bagaimanakah Kata Kunci `ini` Berkelakuan dalam Konteks JavaScript yang Berbeza?

Bagaimanakah Kata Kunci `ini` Berkelakuan dalam Konteks JavaScript yang Berbeza?

DDD
Lepaskan: 2024-12-28 18:08:18
asal
208 orang telah melayarinya

How Does the `this` Keyword Behave in Different JavaScript Contexts?

Dalam Objek Tersurat: Menyingkap Kata Kunci Enigmatik "ini" dalam JavaScript

Dalam batasan objek literal, enigmatik "ini" " kata kunci mempunyai kepentingan yang mendalam dalam JavaScript. Dengan menyelidiki selok-beloknya, kami mendedahkan peranannya yang tepat dan faktor-faktor yang mengawal tingkah lakunya.

1. Peraturan Mengikat: Menyahmistikan Konteks

Peraturan mengikat "ini" dalam JavaScript menentang jangkaan konvensional, berbeza dengan ketara daripada banyak bahasa OO lain. Tingkah lakunya ditentukan semata-mata oleh cara fungsi dipanggil, bukan oleh peletakannya dalam kod.

2. Apabila ini Memerintah Zon Pembinaan

Apabila dipanggil sebagai pembina, "ini" berkuasa dalam objek yang baru dibuat. Ia mengikat kepada entiti yang baru ditempa dan mengawal sifat dan kaedahnya.

3. Kaedah Objek: Alam ini

Sebagai kaedah objek, "ini" merangkumi objek yang memanggilnya. Penguasaannya meluas ke sifat dalaman objek, menjadikannya alat yang sangat diperlukan untuk mengakses dan memanipulasi keadaan objek.

4. Tanpa Invocation Methodical: A Global Embrace

Apabila digunakan di luar fungsi atau kaedah objek, "ini" merangkumi objek global, dengan berkesan menjadi wakilnya. Dalam penyemak imbas, objek global ini menjelma sebagai "tetingkap", menggunakan kawalan ke atas persekitaran aplikasi.

5. Acara: A Terdesentralisasi ini

Dalam pengendali acara, "ini" menari mengikut rentak yang berbeza. Ia mengikat elemen DOM yang mencetuskan acara, memberikan akses kepada sifat dan kaedahnya. Walau bagaimanapun, untuk acara yang diasingkan daripada DOM (cth., setTimeout), "ini" berbalik kepada objek global.

6. call(), apply(): The Alchemy of this

Kaedah panggilan() dan apply() memberi kuasa kepada pembangun untuk menetapkan semula "ini" kepada mana-mana objek yang mereka inginkan, memberikan kelonggaran yang tidak terbatas dalam penyebutan kaedah. Ini membuka pintu kepada pelbagai kemungkinan, termasuk rantaian panggilan dan emulasi warisan.

7. bind(): Tali Baharu tentang ini

Function.bind() dalam JavaScript moden melengkapkan kami dengan keupayaan untuk mengikat "ini" secara eksplisit pada objek tertentu. Kuasa ini memberikan keupayaan untuk mencipta fungsi bebas dengan konteks "ini" mereka sendiri, memupuk kebolehgunaan semula dan kebolehselenggaraan kod.

8. Mod Ketat: A Break from the Global

Mod ketat memperkenalkan peraturan pecah tanah: "ini" dihalang daripada merujuk kepada objek global apabila tidak digunakan sebagai kaedah atau terikat secara eksplisit. Transformasi ini meningkatkan kejelasan kod dan mengurangkan potensi ralat.

9. Fungsi Anak Panah: Mentakrifkan semula ini

Fungsi anak panah merevolusikan tingkah laku "ini." Tidak seperti fungsi tradisional, ia mewujudkan ikatan "ini" statik pada pengisytiharan mereka. Ikatan ini berasal daripada objek induknya dan kekal tidak berubah, walaupun dalam fungsi bersarang.

10. Fungsi Warisan dan Anak Panah: Konflik Kepentingan

Fungsi anak panah memberikan cabaran kepada pewarisan dalam JavaScript. Ikatan mereka yang wujud ini menghalang keupayaan untuk mewarisi sifat dan kaedah daripada objek induk. Untuk mencapai warisan, pembangun mesti mengatasi semua fungsi anak panah daripada objek induk, tugas intensif buruh dan terdedah kepada ralat.

Ringkasnya

Kata kunci "ini" dalam JavaScript ialah alat yang membingungkan namun sangat diperlukan yang berfungsi sebagai saluran antara objek atau fungsi dan persekitarannya. Tingkah lakunya, dikawal oleh peraturan yang mengikat dan konteks doa, adalah penting untuk memahami dinamik asas kod JavaScript dan mengeksploitasi potensi penuhnya.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `ini` Berkelakuan dalam Konteks JavaScript yang Berbeza?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan