Rumah >hujung hadapan web >tutorial js >Bilakah Anda Harus Menggunakan Kaedah bind() JavaScript?

Bilakah Anda Harus Menggunakan Kaedah bind() JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 18:44:18771semak imbas

When Should You Use JavaScript's bind() Method?

Kaedah Javascript bind()

Semasa call() dan apply() digunakan untuk memanggil fungsi dengan konteks tertentu dengan menghantar secara manual atau menyediakan argumen sebagai tatasusunan, kaedah bind() mempunyai tujuan yang berbeza.

Bila Penggunaan bind()

Kaedah bind() harus digunakan apabila anda perlu mencipta fungsi baharu dengan konteks yang dipratentukan untuk pemanggilan kemudian. Ini amat berguna dalam pengendalian acara dan panggil balik tak segerak.

Perbandingan dengan call() dan apply()

Tidak seperti call() dan apply() yang segera melaksanakan function, bind() mengembalikan fungsi baharu. Fungsi baharu ini, apabila dilaksanakan, akan mempunyai konteks fungsi asal yang ditetapkan kepada objek terikat.

Pertimbangkan contoh berikut:

var obj = {
  x: 81,
  getX: function() {
    return this.x;
  }
};

// Bind the function to the object 'obj'
var boundGetX = obj.getX.bind(obj);

// Later, invoke the bound function with the desired context
alert(boundGetX());

Dalam senario ini, fungsi boundGetX mengekalkan konteks objek obj, walaupun apabila dipanggil secara tak segerak atau dalam a panggil balik.

Penggunaan dalam Pengendalian Acara

Apabila mengendalikan acara, adalah perkara biasa untuk mengekalkan konteks objek tertentu. Menggunakan bind(), anda boleh memastikan bahawa pengendali acara mempunyai konteks yang betul apabila dilaksanakan.

function MyObject(element) {
    this.elm = element;

    element.addEventListener('click', this.onClick.bind(this), false);
};

MyObject.prototype.onClick = function(e) {
     // 'this' refers to the MyObject instance
    // Perform some action...
};

Dengan mengikat fungsi onClick pada contoh MyObject, anda menjamin bahawa apabila peristiwa klik berlaku, kata kunci ini dalam pengendali acara akan merujuk contoh MyObject.

Pelaksanaan Butiran

Pelaksanaan bind() yang dipermudahkan mungkin kelihatan seperti ini:

Function.prototype.bind = function(ctx) {
    var fn = this;
    return function() {
        fn.apply(ctx, arguments);
    };
};

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Kaedah bind() JavaScript?. 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