Middle
¿Qué métodos existen para trabajar con el contexto (this)? ¿Cuál es la firma de llamada del método call? ¿En qué se diferencia call de apply?
sobes.tech AI
Respuesta de la IA
В 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, ['Здравствуйте', '.']); // Здравствуйте, Иван.