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

引自 https://www.jianshu.com/p/a76dc120be20

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

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

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

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

它们的区别是什么?

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容