问答题709/1628连续 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

预览

小程序刷题更方便

预览

关注公众号获取最新面经

预览

咨询辅导服务/加面试交流群

赞赏支持

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