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
fungsi.bind(konteks, parameter1, parameter2...);
Contoh
Misalkan kita memiliki input:
<input id="elem" value="text">
Misalkan tautan ke input ini tercatat dalam variabel
elem:
let elem = document.querySelector('#elem');
Misalkan kita juga memiliki fungsi berikut
func:
function 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:
let newFunc = func.bind(elem);
Sekarang di variabel newFunc terdapat
fungsi. Mari kita panggil, dengan meneruskan ke parameter pertama
'1', dan ke parameter kedua '2':
newFunc('1', '2');
Mari kita kumpulkan semuanya:
let 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:
let func = func.bind(elem);