Junior
106
questionbank
Что делает функция `Function.prototype.bind` и для чего она нужна?
AI答案
sobes.tech AI
Function.prototype.bind создает новую функцию, которая при вызове будет иметь жестко заданный контекст (this) и, опционально, предопределенные аргументы, предшествующие любым аргументам, переданным новой функции при вызове.
Это полезно для:
- сохранения контекста при передаче методов в качестве колбэков или обработчиков событий.
- частичного применения (currying) функций.
// Пример сохранения контекста
const user = {
name: 'Alice',
greet: function() {
console.log(`Привет, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Привет, undefined! (контекст потерян)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Привет, Alice! (контекст сохранен)
// Пример частичного применения
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null в качестве контекста, так как он не нужен
console.log(multiplyByTwo(5)); // 10