bind մեթոդը
bind մեթոդը կապում է կոնտեքստը ֆունկցիայի հետ:
Առաջին պարամետրով պետք է փոխանցել
կոնտեքստը, իսկ հաջորդ պարամետրերով՝ ֆունկցիայի
պարամետրերը: Մեթոդը վերադարձնում է նոր ֆունկցիա,
որի ներսում this-ը հավասար կլինի փոխանցված
կոնտեքստին:
Շարահյուսություն
ֆունկցիա.bind(կոնտեքստ, պարամետր1, պարամետր2...);
Օրինակ
Ենթադրենք ունենք ինփուտ:
<input id="elem" value="text">
Ենթադրենք այս ինփուտի հղումը գրված է elem
փոփոխականում:
let elem = document.querySelector('#elem');
Ենթադրենք ունենք նաև հետևյալ func
ֆունկցիան:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Օգտագործենք bind-ը՝ ստեղծելու նոր
ֆունկցիա, ո� կլինի func ֆունկցիայի պատճենը,
բայց որում this-ը միշտ հավասար կլինի elem-ին:
let newFunc = func.bind(elem);
Այժմ newFunc փոփոխականում գտնվում է
ֆունկցիա: Եկեք կանչենք այն՝ փոխանցելով առաջին
պարամետրին '1', իսկ երկրորդին՝ '2':
newFunc('1', '2');
Եկեք հավաքենք ամենը միասին:
let 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-ին:
let func = func.bind(elem);