bind()的实现

clipboard.png

这个函数为什么要再嵌套一层函数呢?

Function.prototype.bind=function(context){
    return this.apply(context,arguments)
   
}

这样写不行吗

阅读 10.3k
4 个回答

MDN的解释是:bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind()方法的第一个参数作为 this,传入 bind() 方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数。

bind的用法是,func.bind(someone)得到新的func,然后执行func();
你这个写法,func.bind(someone),func已经执行了。

如果自定义的函数需要传入参数时,你就会发现不同了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏