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
fungsi.bind(konteks, parameter1, parameter2...);
Contoh
Katakan kita mempunyai input:
<input id="elem" value="text">
Katakan pautan ke input ini disimpan dalam pembolehubah
elem:
let elem = document.querySelector('#elem');
Katakan kita juga mempunyai fungsi berikut
func:
function 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:
let newFunc = func.bind(elem);
Sekarang dalam pembolehubah newFunc terdapat
fungsi. Mari kita panggilnya, dengan memberikan
parameter pertama '1', dan 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 memaparkan 'text12'
Contoh
Tidak semestinya menyimpan hasil
bind dalam fungsi baharu newFunc,
boleh juga menulis ganti func:
let func = func.bind(elem);