美文网首页Javascript收集
bind()和call()和apply()的区别

bind()和call()和apply()的区别

作者: zhangjingbibibi | 来源:发表于2018-07-24 16:21 被阅读23次

bind()和call()和apply()的区别

首先说说call()和apply()的区别

它们都是改变this的指向问题,会传入2部分参数,第一个是:你要指定的执行上下文,第二个是:传递参数。

  • 大白话来讲就是:就是调用函数,但是让它在你指定的上下文下执行,这样,函数可以访问的作用域就会改变。

它们的区别是什么?

call的第二部分参数要一个一个传,apply要把这些参数放到数组中。这就是他们的区别,真的就这么点区别

接着说bind()跟它们的区别

  • bind()是es5中的方法,他也是用来实现上下文绑定,看它的函数名就知道。

  • bind()和call与apply不同。bind是新创建一个函数,然后把它的上下文绑定到bind()括号中的传入的参数,然后将它返回。

bind后函数不会执行,而只是返回一个改变了上下文的函数副本,而call和apply是直接执行函数。

相关文章

网友评论

    本文标题:bind()和call()和apply()的区别

    本文链接:https://www.haomeiwen.com/subject/wzhymftx.html