Sobes.tech
Middle

Ի՞նչ մեթոդներ կան կոնտեքստի (this) հետ աշխատելու համար: Ինչ է call մեթոդի կանչի սիգնատուրան: Ինչպես է call-ը տարբերվում apply-ից?

sobes.tech AI

Պատասխան AI-ից

В JavaScript контекст (this) определяется тем, как вызывается функция. Основные методы работы с контекстом:

  • call — вызывает функцию с указанным контекстом и аргументами, передаваемыми по одному.
  • apply — похож на call, но аргументы передаются в виде массива.
  • bind — возвращает новую функцию с привязанным контекстом, которую можно вызвать позже.

Сигнатура метода call:

func.call(thisArg, arg1, arg2, ...)

Разница между call и apply в способе передачи аргументов:

  • call принимает аргументы через запятую
  • apply принимает массив аргументов

Пример:

function greet(greeting, punctuation) {
  console.log(greeting + ', ' + this.name + punctuation);
}

const person = { name: 'Иван' };

greet.call(person, 'Привет', '!');       // Привет, Иван!
greet.apply(person, ['Здравствуйте', '.']); // Здравствуйте, Иван.