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

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述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。

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

文章图片

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

文章图片

 

    推荐阅读