Middle
Ի՞նչ են JavaScript-ում call, apply և bind մեթոդները։
sobes.tech AI
Պատասխան AI-ից
call, apply և bind — դա մեթոդներ են, որոնք հասանելի են բոլոր ֆունկցիաների համար JavaScript-ում: Դրանք օգտագործվում են ֆունկցիայի գործարկման կոնտեքստը կառավարելու համար (this արժեքը):
- call: Կոչում է ֆունկցիան նշված
thisարժեքով և առանձին արգումենտներով:// call-ի օգտագործման օրինակ function greet() { return "Բարև, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Արտածում՝ Բարև, Ivan! - apply: Կոչում է ֆունկցիան նշված
thisարժեքով և արգումենտները փոխանցում է զանգված կամ псевդո-զանգված ձևով:// apply-ի օգտագործման օրինակ function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Արտածում՝ 18 - bind: Ստեղծում է նոր ֆունկցիա, որը երբ կանչվի, ունենա հաստատված
thisարժեք:// bind-ի օգտագործման օրինակ const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Արտածում՝ undefined (`this` ցույց է տալիս գլոբալ օբյեկտին) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Արտածում՝ 42 (`this` կապված է module-ի հետ)
Հիմնական տարբերությունները՝
| Մեթոդ | Արգումենտների փոխանցում | Ֆունկցիայի կանչում | Վերադարձվող արժեքը |
|---|---|---|---|
| call | Բաժան (վերագրում) | Ուղիղ | Ֆունկցիայի արդյունքը |
| apply | Զանգված կամ псевдо-զանգված | Ուղիղ | Ֆունկցիայի արդյունքը |
| bind | Բաժան (վերագրում) | Չի ուղիղ | Նոր ֆունկցիա, որի this-ը կապված է |