bind մեթոդը

bind մեթոդը կապում է կոնտեքստը ֆունկցիայի հետ: Առաջին պարամետրով պետք է փոխանցել կոնտեքստը, իսկ հաջորդ պարամետրերով՝ ֆունկցիայի պարամետրերը: Մեթոդը վերադարձնում է նոր ֆունկցիա, որի ներսում this-ը հավասար կլինի փոխանցված կոնտեքստին:

Շարահյուսություն

javascriptֆունկցիա.bind(կոնտեքստ, պարամետր1, պարամետր2...);

Օրինակ

Ենթադրենք ունենք ինփուտ:

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

Ենթադրենք այս ինփուտի հղումը գրված է elem փոփոխականում:

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

Ենթադրենք ունենք նաև հետևյալ func ֆունկցիան:

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

Օգտագործենք bind-ը՝ ստեղծելու նոր ֆունկցիա, ո� կլինի func ֆունկցիայի պատճենը, բայց որում this-ը միշտ հավասար կլինի elem-ին:

javascriptlet newFunc = func.bind(elem);

Այժմ newFunc փոփոխականում գտնվում է ֆունկցիա: Եկեք կանչենք այն՝ փոխանցելով առաջին պարամետրին '1', իսկ երկրորդին՝ '2':

javascriptnewFunc('1', '2');

Եկեք հավաքենք ամենը միասին:

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

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

let newFunc = func.bind(elem);
newFunc('1', '2'); // կարտածի 'text12'

Օրինակ

bind-ի արդյունքը պարտադիր չէ գրել նոր ֆունկցիայի մեջ newFunc, կարելի է պարզապես վերագրել func-ին:

javascriptlet func = func.bind(elem);

Տես նաև

  • call մեթոդը,
    որը կանչում է ֆունկցիան կոնտեքստով
  • apply մեթոդը,
    որը կանչում է ֆունկցիան կոնտեքստով