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
javascriptfunkcija.bind(konteksts, parametrs1, parametrs2...);
Piemērs
Pieņemsim, ka mums ir ievades lauks:
html<input id="elem" value="text">
Pieņemsim, ka saite uz šo ievades lauku ir saglabāta mainīgajā
elem:
javascriptlet elem = document.querySelector('#elem');
Pieņemsim, ka mums ir arī šāda funkcija
func:
javascriptfunction 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:
javascriptlet newFunc = func.bind(elem);
Tagad mainīgajā newFunc atrodas
funkcija. Izsauksim to, padodot pirmajā
parametrā '1', bet otrajā '2':
javascriptnewFunc('1', '2');
Apvienosim visu kopā:
javascriptlet 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:
javascriptlet func = func.bind(elem);