Реализован базовый функционал связывания с помощью apply.
Я вызвал этот метод myBind , добавил его в прототип функции, чтобы он был доступен любой функции:
Реализация функции
Function.prototype.myBind = function() {
const callerFunction = this;
const [thisContext, ...args] = arguments;
return function() {
return callerFunction.apply(thisContext, args);
}
}
Использование:
Может использоваться в качестве встроенной функции связывания с учетом контекста и аргументов.
function testMyBind(favColor) {
console.log(this.name, favColor); // Test, pink
}
const user = {
name: 'Test'
}
const bindedFunction = testMyBind.myBind(user, 'pink');
bindedFunction();