Sobes.tech
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-ը կապված է