call() 和 apply() 的区别?

Posted xiaoan0705

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了call() 和 apply() 的区别?相关的知识,希望对你有一定的参考价值。

相同点:两个方法产生的作用是完全一样的,都用来改变当前函数调用的对象。

不同点:调用的参数不同,比较精辟的总结:

foo.call(this,arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)

1.call的使用

call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

技术分享图片

 

2.apply()

apply与call的功能几乎一样,第一个参数意义都一样,只是第二个参数有点不同apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,call从第二个参数开始,依次传值给调用函数的参数 

技术分享图片

 

以上是关于call() 和 apply() 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

js中call和apply的区别

Js中call和apply的区别和用法是啥?

call和apply区别

apply,call,bind的区别

apply和call的区别

call和apply的区别