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);