bind()和call()和apply()的区别
首先说说call()和apply()的区别
它们都是改变this的指向问题,会传入2部分参数,第一个是:你要指定的执行上下文,第二个是:传递参数。
- 大白话来讲就是:就是调用函数,但是让它在你指定的上下文下执行,这样,函数可以访问的作用域就会改变。
它们的区别是什么?
call的第二部分参数要一个一个传,apply要把这些参数放到数组中。这就是他们的区别,真的就这么点区别
接着说bind()跟它们的区别
bind()是es5中的方法,他也是用来实现
上下文绑定
,看它的函数名就知道。bind()和call与apply不同。bind是
新创建
一个函数,然后把它的上下文绑定到bind()括号中的传入的参数,然后将它返回。
bind后函数不会执行,而只是返回一个改变了上下文的函数副本,而call和apply是直接执行函数。