Kaedah bind

Kaedah bind digunakan untuk mengikat konteks kepada fungsi. Parameter pertama hendaklah konteks, dan parameter berikutnya ialah parameter fungsi. Kaedah ini mengembalikan fungsi baharu, di mana this akan sama dengan konteks yang diberikan.

Sintaks

javascriptfungsi.bind(konteks, parameter1, parameter2...);

Contoh

Katakan kita mempunyai input:

html<input id="elem" value="text">

Katakan pautan ke input ini disimpan dalam pembolehubah elem:

javascriptlet elem = document.querySelector('#elem');

Katakan kita juga mempunyai fungsi berikut func:

javascriptfunction func(param1, param2) {
  console.log(this.value + param1 + param2);
}

Mari kita gunakan bind untuk membuat fungsi baharu yang akan menjadi salinan fungsi func, tetapi this di dalamnya akan sentiasa sama dengan elem:

javascriptlet newFunc = func.bind(elem);

Sekarang dalam pembolehubah newFunc terdapat fungsi. Mari kita panggilnya, dengan memberikan parameter pertama '1', dan parameter kedua '2':

javascriptnewFunc('1', '2');

Mari kita kumpulkan semuanya:

javascriptlet elem = document.getElementById('elem');

function func(param1, param2) {
  console.log(this.value + param1 + param2);
}

let newFunc = func.bind(elem);
newFunc('1', '2'); // akan memaparkan 'text12'

Contoh

Tidak semestinya menyimpan hasil bind dalam fungsi baharu newFunc, boleh juga menulis ganti func:

javascriptlet func = func.bind(elem);

Lihat juga

  • kaedah call,
    yang memanggil fungsi dengan konteks
  • kaedah apply,
    yang memanggil fungsi dengan konteks