const cat = { age: 10 }
const dog = { age: 20 }
function foo() {
console.log(this.age)
}
const f = foo.bind(cat).bind(dog)
Function.prototype.bind = function bind(ctx, ...args) {
const originalFunction = this;
return function (...args2) {
return originalFunction.apply(ctx, args.concat(args2));
};
}
Как видите, возвращаемая функция уже никак не использует свой this.