


Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka
Terdapat perbezaan utama antara fungsi anak panah dan fungsi biasa dalam mengikat ini. 1. Fungsi anak panah tidak mengikat sendiri ini, tetapi mewarisi dari skop periferal, iaitu, skop leksikal; 2. Ini fungsi biasa bergantung kepada kaedah panggilan, yang sering menyebabkan ini menunjuk kepada objek global dalam panggilan balik; 3. Menggunakan fungsi anak panah boleh mengelakkan masalah tersebut, yang sesuai untuk mengekalkan konsistensi ini; 4. Situasi di mana fungsi anak panah tidak disyorkan termasuk sebagai kaedah objek, pembina, dan senario yang memerlukan dinamik ini seperti pemprosesan peristiwa; 5. Apabila menggunakan fungsi anak panah dalam kaedah prototaip, ini tidak akan menunjuk kepada contoh, tetapi skop luaran.
Fungsi Arrow dalam JavaScript mungkin kelihatan seperti cara yang lebih pendek untuk menulis ekspresi fungsi, tetapi mereka datang dengan satu perbezaan utama yang mengembara banyak pemaju: bagaimana mereka mengendalikan kata kunci this
.

Tidak seperti fungsi biasa, fungsi anak panah tidak mempunyai this
sendiri. Sebaliknya, mereka mewarisi dari konteks sekitarnya. Itu boleh menjadi sangat berguna - atau benar -benar mengelirukan - bergantung kepada bagaimana dan di mana anda menggunakannya.

Bagaimana 'ini' berfungsi dalam fungsi biasa
Dalam fungsi biasa, nilai this
bergantung pada bagaimana fungsi dipanggil. Itulah sebabnya anda sering melihat kekeliruan apabila menggunakan this
dalam panggilan balik atau kaedah.
Contohnya:

const user = { Nama: "Alex", salam: fungsi () { setTimeout (fungsi () { Console.log ("Hello," this.name); }, 100); } }; user.greet (); // Hello, tidak ditentukan
Di dalam setTimeout
, this
tidak lagi merujuk kepada objek user
. Dalam mod bukan tegas, ia menunjuk kepada objek global ( window
dalam pelayar), yang bermaksud this.name
. Nama undefined
.
Untuk memperbaikinya, pemaju biasa melakukan sesuatu seperti:
const self = ini; setTimeout (fungsi () { Console.log ("Hello," self.name); }, 100);
Atau mengikat this
secara eksplisit.
Fungsi anak panah menangkap 'ini' secara leksikal
Sekarang masukkan fungsi anak panah. Ia tidak mengikat sendiri this
. Sebaliknya, ia menggunakan nilai this
dari fungsi ibu bapa yang tidak terdekat. Ini dipanggil scoping lexical.
Menulis semula contoh sebelumnya dengan fungsi anak panah:
const user = { Nama: "Alex", salam: fungsi () { setTimeout (() => { Console.log ("Hello," this.name); }, 100); } }; user.greet (); // Hello, Alex
Itu lebih bersih. Fungsi anak panah tidak mencipta sendiri this
, jadi this.name
Nama betul merujuk kepada objek user
.
Tingkah laku ini menjadikan fungsi anak panah sesuai untuk panggilan balik pendek di mana anda ingin memelihara luar this
.
Apabila tidak menggunakan fungsi anak panah
Walaupun fungsi anak panah hebat untuk leksikal this
, mereka tidak selalu menjadi pilihan yang tepat.
Berikut adalah beberapa situasi di mana anda harus mengelakkannya:
- Sebagai kaedah objek (melainkan jika anda ingin menangkap luar
this
) - Sebagai pembina - fungsi anak panah tidak dapat digunakan dengan
new
- Apabila anda
this
sendiri , seperti dalam pengendali acara atau kaedah DOM
Contohnya:
butang const = document.QuerySelector ('butang'); Button.AdDeventListener ('klik', () => { console.log (ini); // tetingkap/global, bukan butang });
Jika anda mengharapkan this
untuk merujuk kepada elemen yang diklik, gunakan fungsi biasa sebaliknya:
Button.AdDeventListener ('klik', fungsi () { console.log (ini); // elemen butang });
Nota ringkas mengenai kaedah prototaip
Anda juga tidak boleh menggunakan fungsi anak panah apabila menentukan kaedah prototaip jika anda mengharapkan this
untuk merujuk kepada contoh:
fungsi orang (nama) { this.name = name; } Person.prototype.sayhi = () => { Console.log ("Hi," this.name); }; const p = orang baru ("Jamie"); P.Sayhi (); // hi, tidak ditentukan
Sekali lagi, kerana fungsi anak panah tidak mempunyai sendiri this
, ia merujuk kepada skop luar, yang mana mungkin objek global.
Jadi ya, fungsi anak panah sangat bagus untuk menjaga this
konsisten tanpa perlu .bind()
atau gunakan self = this
. Tetapi mereka bukan pengganti drop-in di mana-mana-terutamanya apabila anda mahu this
berubah berdasarkan bagaimana fungsi itu dipanggil.
Gunakan mereka di mana leksikal this
membantu memudahkan kod anda, dan melekat dengan fungsi biasa apabila dinamik this
diperlukan.
Pada dasarnya itu sahaja.
Atas ialah kandungan terperinci Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan fungsi anak panah PHP untuk melaksanakan kari fungsi Currying (Kari) ialah konsep pengaturcaraan berfungsi, yang merujuk kepada proses menukar fungsi berbilang parameter kepada jujukan fungsi yang hanya menerima satu parameter. Dalam PHP, kita boleh menggunakan fungsi anak panah untuk melaksanakan karier fungsi, menjadikan kod lebih ringkas dan fleksibel. Fungsi anak panah yang dipanggil ialah sintaks fungsi tanpa nama baharu yang diperkenalkan dalam PHP7.4. Cirinya ialah ia boleh menangkap pembolehubah luaran dan hanya mempunyai satu ungkapan sebagai badan fungsi.

Perbezaan: 1. Definisi fungsi anak panah adalah lebih mudah, lebih jelas dan lebih cepat daripada takrifan fungsi biasa; digunakan sebagai pembina, manakala fungsi anak panah tidak boleh digunakan sebagai pembina Fungsi boleh digunakan sebagai pembina 4. Fungsi anak panah tidak mempunyai hujahnya sendiri, tetapi fungsi anak panah ada.

Cara menggunakan fungsi anak panah PHP untuk meningkatkan prestasi kod memerlukan contoh kod khusus Dalam versi PHP 7.4, fungsi anak panah (ArrowFunctions) telah diperkenalkan, iaitu sintaks fungsi tanpa nama yang lebih ringkas yang boleh membantu kami meningkatkan prestasi dan kebolehbacaan kod. Artikel ini akan memperkenalkan cara menggunakan fungsi anak panah untuk menulis kod PHP yang cekap dan menyediakan contoh kod khusus. Kurangkan kos definisi fungsi Kaedah definisi fungsi tanpa nama tradisional akan memperkenalkan overhed tertentu, termasuk definisi nama fungsi dan gelung penutup.

Fungsi anak panah diperkenalkan dalam Php7.4 dan merupakan bentuk penutupan ringkas. 1) Mereka ditakrifkan menggunakan => operator, fungsi tidak menggunakan kata kunci. 2) Fungsi anak panah secara automatik menangkap pembolehubah skop semasa tanpa kata kunci penggunaan. 3) Mereka sering digunakan dalam fungsi panggilan balik dan pengiraan pendek untuk meningkatkan kesederhanaan kod dan kebolehbacaan.

Cara menggunakan fungsi anak panah PHP untuk memudahkan pernyataan bersyarat Dalam pengaturcaraan PHP, kita selalunya perlu menggunakan pernyataan bersyarat (jika lain) untuk melaksanakan blok kod yang berbeza berdasarkan syarat yang berbeza. Walau bagaimanapun, menggunakan sintaks if-else tradisional boleh membuat kod menyusahkan dan sukar dibaca. Untuk memudahkan proses ini, PHP7.4 memperkenalkan fungsi anak panah (fungsi anak panah). Fungsi anak panah menyediakan cara yang lebih ringkas dan boleh dibaca untuk menulis pernyataan bersyarat. Artikel ini akan memperkenalkan fungsi anak panah

Dalam ES6, objek ini dalam badan fungsi anak panah ialah objek yang ditunjuk oleh skop di mana fungsi itu ditakrifkan. Titik ini dalam fungsi anak panah ialah titik objek dalam konteks Kadang-kadang, jika tiada objek konteks, ini menunjuk ke tetingkap walaupun memanggil, memohon, mengikat dan kaedah lain tidak boleh mengubah titik ini fungsi anak panah.

Fungsi anak panah PHP: Cara mengendalikan panggilan bersarang bagi fungsi tertib tinggi, contoh kod khusus diperlukan Pengenalan: Dalam versi 7.4 PHP, konsep fungsi anak panah (fungsi anak panah) telah diperkenalkan dengan cara yang ringkas dan boleh diproses dengan elegan. Artikel ini akan memperkenalkan penggunaan asas fungsi anak panah dan menunjukkan cara mengendalikan panggilan bersarang bagi fungsi peringkat tinggi melalui contoh kod tertentu. 1. Apakah fungsi anak panah? Fungsi anak panah ialah ciri baharu yang diperkenalkan dalam versi PHP7.4 Ia adalah a

Artikel ini boleh memberitahu anda semua tentang fungsi anak panah JavaScript. Kami akan menunjukkan kepada anda cara menggunakan sintaks anak panah ES6, serta beberapa kesilapan biasa yang perlu diberi perhatian apabila menggunakan fungsi anak panah dalam kod anda. Anda akan melihat banyak contoh cara ia berfungsi.
