Metoda bind

Metoda bind lidh kontekstin me një funksion. Si parametër i parë duhet të kaloni kontekstin, dhe si parametra pasues - parametrat e funksionit. Metoda kthen një funksion të ri, brenda të cilit this do të jetë i barabartë me kontekstin e kaluar.

Sintaksa

javascriptfunksion.bind(kontekst, parametri1, parametri2...);

Shembull

Le të kemi një input:

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

Le të jetë lidhja me këtë input të regjistruar në variablin elem:

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

Le të kemi gjithashtu funksionin e mëposhtëm func:

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

Le të bëjmë me anë të bind një funksion të ri, i cili do të jetë kopje e funksionit func, por this në të do të jetë gjithmonë i barabartë me elem:

javascriptlet newFunc = func.bind(elem);

Tani në variablin newFunc ndodhet një funksion. Le ta thirrim atë, duke kaluar në parametrin e parë '1', dhe në të dytin '2':

javascriptnewFunc('1', '2');

Le të mbledhim të gjitha së bashku:

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

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

let newFunc = func.bind(elem);
newFunc('1', '2'); // do të shfaqet 'text12'

Shembull

Nuk është e detyrueshme të regjistrohet rezultati i punës së bind në një funksion të ri newFunc, mund thjesht të rishkruhet func:

javascriptfunc = func.bind(elem);

Shihni gjithashtu

  • metoda call,
    e cila thërret funksionin me kontekst
  • metoda apply,
    e cila thërret funksionin me kontekst