Sobes.tech
Middle

რა არის call, apply და bind მეთოდები JavaScript-ში?

sobes.tech AI

პასუხი AI-სგან

call, apply һәм bind — JavaScript-деги бардык функцияларга жеткиликтүү методдор. Алар функциянын аткарылыш контекстин (мааниси this) башкаруу үчүн колдонулат.

  • call: Функцияны белгилүү this мааниси жана жеке аргументтер менен чакыруу.
    // call колдонуу мисалы
    function greet() {
      return "Салам, " + this.name + "!";
    }
    
    const person = { name: "Иван" };
    
    console.log(greet.call(person)); // Чыгуу: Салам, Иван!
    
  • 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 байланган