Metode bind
Metode bind piešķir kontekstu funkcijai.
Kā pirmo parametru jānorāda
konteksts, bet nākamajos parametros - funkcijas
parametri. Metode atgriež jaunu funkciju,
kurās this būs vienāds ar norādīto
kontekstu.
Sintakse
funkcija.bind(konteksts, parametrs1, parametrs2...);
Piemērs
Pieņemsim, ka mums ir ievades lauks:
<input id="elem" value="text">
Pieņemsim, ka saite uz šo ievades lauku ir saglabāta mainīgajā
elem:
let elem = document.querySelector('#elem');
Pieņemsim, ka mums ir arī šāda funkcija
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Izmantosim bind, lai izveidotu jaunu
funkciju, kas būs funkcijas func kopija,
bet this tajā vienmēr būs vienāds ar elem:
let newFunc = func.bind(elem);
Tagad mainīgajā newFunc atrodas
funkcija. Izsauksim to, padodot pirmajā
parametrā '1', bet otrajā '2':
newFunc('1', '2');
Apvienosim visu kopā:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // izvadīs 'text12'
Piemērs
Nav obligāti jāsaglabā bind rezultāts
jaunā funkcijā newFunc,
var vienkārši pārrakstīt func:
let func = func.bind(elem);