Meetod bind

Meetod bind võimaldab siduda konteksti funktsiooniga. Esimeseks parameetriks tuleb edastada kontekst, ning järgnevateks parameetriteks - funktsiooni parameetrid. Meetod tagastab uue funktsiooni, milles this on võrdne edastatud kontekstiga.

Süntaks

javascriptfunktsioon.bind(kontekst, parameeter1, parameeter2...);

Näide

Oletame, et meil on input:

html<input id="elem" value="text">

Oletame, et viide sellele inputile on salvestatud muutujasse elem:

javascriptlet elem = document.querySelector('#elem');

Oletame, et meil on ka järgmine funktsioon func:

javascriptfunction func(param1, param2) {
  console.log(this.value + param1 + param2);
}

Teeme bind abil uue funktsiooni, mis on funktsiooni func koopia, kuid this selles on alati võrdne elemga:

javascriptlet newFunc = func.bind(elem);

Nüüd on muutujas newFunc funktsioon. Kutsume selle esile, edastades esimese parameetrina '1' ja teise '2':

javascriptnewFunc('1', '2');

Panime kõik kokku:

javascriptlet elem = document.getElementById('elem');

function func(param1, param2) {
  console.log(this.value + param1 + param2);
}

let newFunc = func.bind(elem);
newFunc('1', '2'); // väljastab 'text12'

Näide

Pole vaja bind tulemust salvestada uude funktsiooni newFunc, saab lihtsalt üle kirjutada func:

javascriptlet func = func.bind(elem);

Vaata ka

  • meetod call,
    mis kutsub funktsiooni kontekstiga esile
  • meetod apply,
    mis kutsub funktsiooni kontekstiga esile