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

Skatiet arī

  • metode call,
    kas izsauc funkciju ar kontekstu
  • metode apply,
    kas izsauc funkciju ar kontekstu