Bila dan Mengapa JavaScript bind() Diperlukan?

Linda Hamilton
Lepaskan: 2024-10-24 16:54:02
asal
970 orang telah melayarinya

When and Why is JavaScript bind() Necessary?

Mengapa JavaScript bind() Diperlukan?

Memahami Pengikatan Kontekstual JavaScript

Dalam JavaScript, nilai ini ditentukan oleh konteks pemanggilan fungsi . Walau bagaimanapun, konteks ini mungkin tidak selalu diingini apabila menggunakan fungsi panggil balik atau pengendali acara.

Pertimbangkan contoh berikut:

<code class="javascript">this.name = "John";

var myName = {
  name: "Tom",
  getName: function() {
    return this.name;
  }
};

var storeMyName = myName.getName; // example 1
var storeMyName2 = myName.getName.bind(myName); // example 2
var storeMyName3 = myName.getName(); // example 3</code>
Salin selepas log masuk

Memanggil storeMyName() dalam contoh 1 memperuntukkan ini kepada skop global , menghasilkan "John" dan bukannya "Tom" seperti yang dijangkakan.

Keperluan untuk Bind()

Apabila mewakilkan pelaksanaan fungsi kepada kod lain, rujukan ini mungkin menjadi tidak dapat diramalkan. bind() membolehkan anda menetapkan nilai ini secara manual sebelum menggunakan fungsi.

Dalam contoh 2, memanggil storeMyName2() menggunakan bind(myName) memastikan bahawa nilai ini ditetapkan kepada objek myName, menyelesaikan masalah dalam contoh 1.

Contoh 3 dan Binding vs. Invocation

contoh 3 menggunakan myName.getName() tanpa mengikat, tetapi masih mengembalikan nilai yang betul kerana ini ditetapkan dengan sewajarnya apabila getName() fungsi dilaksanakan. Ini berbeza dengan contoh 1/2 di mana fungsi disimpan tanpa dilaksanakan.

Perbezaan Utama

Approach Time of Invocation Time of this Binding
Function Object Future Future
Function Call Now Now
f.bind() Future Now

Kesimpulan

bind() adalah penting dalam JavaScript apabila anda perlu mengawal nilai ini fungsi yang akan dilaksanakan dalam konteks yang berbeza. Dengan menggunakan bind(), anda boleh menghalang tingkah laku yang tidak dijangka dan memastikan bahawa rujukan ini ditetapkan seperti yang dikehendaki.

Atas ialah kandungan terperinci Bila dan Mengapa JavaScript bind() Diperlukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!