Metode bind

Metode bind digunakan untuk mengikat konteks ke fungsi. Sebagai parameter pertama harus diteruskan konteks, dan parameter berikutnya - parameter fungsi. Metode mengembalikan fungsi baru, di dalamnya this akan sama dengan konteks yang diteruskan.

Sintaks

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

Contoh

Misalkan kita memiliki input:

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

Misalkan tautan ke input ini tercatat dalam variabel elem:

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

Misalkan kita juga memiliki fungsi berikut func:

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

Mari kita gunakan bind untuk membuat fungsi baru, yang akan menjadi salinan fungsi func, tapi this di dalamnya akan selalu sama dengan elem:

javascriptlet newFunc = func.bind(elem);

Sekarang di variabel newFunc terdapat fungsi. Mari kita panggil, dengan meneruskan ke parameter pertama '1', dan ke 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 menampilkan 'text12'

Contoh

Tidak harus mencatat hasil kerja bind ke dalam fungsi baru newFunc, bisa langsung menimpa func:

javascriptlet func = func.bind(elem);

Lihat juga

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