Спросят с вероятностью 7%
call, apply и bind — это методы, которые позволяют управлять контекстом (
this) функции. Они полезны для вызова функции с определённым значением this и передачи аргументов. Вот как они работают:1️⃣call
Вызывает функцию с указанным значением
this и аргументами, переданными по отдельности.Синтаксис:
func.call(thisArg, arg1, arg2, ...);
Пример:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}
const user = { name: 'Alice' };
greet.call(user, 'Hello', '!'); // Hello, Alice!2️⃣apply
Похож на
call, но аргументы передаются в виде массива.Синтаксис:
func.apply(thisArg, [arg1, arg2, ...]);
Пример:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}
const user = { name: 'Alice' };
greet.apply(user, ['Hello', '!']); // Hello, Alice!3️⃣bind
Создаёт новую функцию, которая при вызове будет иметь указанный контекст
this и аргументы, переданные при создании. Он не вызывает функцию сразу, а возвращает новую функцию.Синтаксис:
const boundFunction = func.bind(thisArg, arg1, arg2, ...);
Пример:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}
const user = { name: 'Alice' };
const boundGreet = greet.bind(user, 'Hello');
boundGreet('!'); // Hello, Alice!Сравнение методов
1️⃣`call` и `apply`:
✅Используются для немедленного вызова функции с заданным
this.✅
call принимает аргументы по отдельности.✅
apply принимает аргументы в виде массива.7️⃣`bind`:
✅Возвращает новую функцию с заданным
this, которую можно вызвать позже.✅Полезен для создания функции с постоянным контекстом.
Краткий ответ:
✅`call` вызывает функцию с указанным значением
this и аргументами, переданными по отдельности.✅`apply` вызывает функцию с указанным значением
this и аргументами, переданными в виде массива.✅`bind` создаёт новую функцию с указанным значением
this и аргументами, которую можно вызвать позже.🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых