Jadual Kandungan
Fungsi anak panah menangkap 'ini' secara leksikal
Apabila tidak menggunakan fungsi anak panah
Nota ringkas mengenai kaedah prototaip
Rumah hujung hadapan web tutorial js Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka

Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka

Jul 04, 2025 am 02:40 AM
fungsi anak panah

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.

Memahami fungsi anak panah JavaScript dan mereka mengikat

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 .

Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka

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.

Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka

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:

Memahami fungsi anak panah JavaScript dan 'ini' mengikat mereka
 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!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Artikel Panas

Skop pembolehubah PHP dijelaskan
1 bulan yang lalu By 百草
Mengulas kod dalam php
1 bulan yang lalu By 百草
Petua untuk menulis komen php
1 bulan yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1511
276
Cara menggunakan fungsi anak panah PHP untuk melaksanakan karier fungsi Cara menggunakan fungsi anak panah PHP untuk melaksanakan karier fungsi Sep 13, 2023 am 11:12 AM

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.

Apakah perbezaan antara fungsi anak panah dan fungsi biasa dalam es6 Apakah perbezaan antara fungsi anak panah dan fungsi biasa dalam es6 Mar 08, 2022 pm 12:11 PM

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 anda Cara menggunakan fungsi anak panah PHP untuk meningkatkan prestasi kod anda Sep 13, 2023 am 10:55 AM

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.

Terangkan fungsi anak panah (penutupan pendek) yang diperkenalkan dalam Php 7.4. Terangkan fungsi anak panah (penutupan pendek) yang diperkenalkan dalam Php 7.4. Apr 06, 2025 am 12:01 AM

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 Cara menggunakan fungsi anak panah PHP untuk memudahkan pernyataan bersyarat Sep 13, 2023 am 09:40 AM

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

Apakah maksud ini dalam kaedah anak panah es6? Apakah maksud ini dalam kaedah anak panah es6? Nov 21, 2022 pm 05:55 PM

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 ke fungsi tertib lebih tinggi Fungsi Anak Panah PHP: Cara mengendalikan panggilan bersarang ke fungsi tertib lebih tinggi Sep 13, 2023 am 08:27 AM

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 akan mengajar anda tentang fungsi anak panah JS Artikel ini akan mengajar anda tentang fungsi anak panah JS Nov 10, 2022 pm 03:58 PM

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.

See all articles