Junior
Šta radi funkcija `Function.prototype.bind` i zašto je potrebna?
sobes.tech АИ
Одговор од АИ
Function.prototype.bind креира нову функцију која, када се позове, има фиксни контекст (this) и, опционално, претходно дефинисане аргументе који претходе било којим аргументима прослеђеним у нову функцију при позиву.
Ово је корисно за:
- одржавање контекста приликом преноса метода као callback-ова или handler-а догађаја.
- делимично примену (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