Rumah  >  Artikel  >  hujung hadapan web  >  Bila dan Mengapa JavaScript bind() Diperlukan?

Bila dan Mengapa JavaScript bind() Diperlukan?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 16:54:02972semak imbas

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>

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!

Kenyataan:
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