将函数绑定到同一个上下文时,每次生成的引用都不同。
function foobar() {
return 1;
}
var foo = foobar.bind(this);
var bar = foobar.bind(this);
console.log(foo === bar); // Nope

答案 0 :(得分:4)
是的Function.prototype.bind()每次都会创建一个新功能。
答案 1 :(得分:2)
该代码是否每次都复制该功能?
它是否复制原始函数是底层JS引擎的实现细节。
bind
的返回值是一项新功能,每次拨打bind
时,您都会获得一个新功能。
缓存这种行为会不会有任何好处?
在缓存生成的函数时可能会有轻微的性能提升,但可能不足以担心,除非您生成数百个相同函数的绑定副本。小心premature optimization。