问答题673/1593连续 bind()多次,输出的值是什么?

1var bar = function(){ 2 console.log(this.x); 3} 4var foo = { 5 x:3 6} 7var sed = { 8 x:4 9} 10var func = bar.bind(foo).bind(sed); 11func(); //? 12 13var fiv = { 14 x:5 15} 16var func = bar.bind(foo).bind(sed).bind(fiv); 17func(); //?
难度:
2022-06-05 创建

参考答案:

两次都输出 3

在Javascript中,多次 bind() 是无效的。

更深层次的原因, bind() 的实现,相当于使用函数在内部包了一个 call / apply ,第二次 bind() 相当于再包住第一次 bind() ,故第二次以后的 bind 是无法生效的。

最近更新时间:2022-06-05

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!