Metode bind

Metode bind bind konteks aan 'n funksie. As eerste parameter moet die konteks oorgedra word, en as volgende parameters - die parameters van die funksie. Die metode gee 'n nuwe funksie terug, waarbinne this gelyk sal wees aan die oorgedraagde konteks.

Sintaksis

javascriptfunksie.bind(konteks, parameter1, parameter2...);

Voorbeeld

Kom ons het 'n invoerveld:

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

Kom ons skakel na hierdie invoerveld is opgeskryf in veranderlike elem:

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

Kom ons het ook die volgende funksie func:

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

Kom ons maak met behulp van bind 'n nuwe funksie, wat 'n kopie van funksie func sal wees, maar this daarin sal altyd gelyk wees aan elem:

javascriptlet newFunc = func.bind(elem);

Nou lê daar 'n funksie in veranderlike newFunc. Kom ons roep dit, deur in die eerste parameter '1' oor te dra, en in die tweede '2':

javascriptnewFunc('1', '2');

Kom ons bring alles saam:

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

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

let newFunc = func.bind(elem);
newFunc('1', '2'); // sal 'text12' uitvoer

Voorbeeld

Dit is nie nodig om die resultaat van bind in 'n nuwe funksie newFunc te skryf nie, kan eenvoudig func oorskryf:

javascriptlet func = func.bind(elem);

Sien ook

  • metode call,
    wat 'n funksie met konteks roep
  • metode apply,
    wat 'n funksie met konteks roep