码迷,mamicode.com
首页 > 移动开发 > 详细

call() 和 apply() 的区别?

时间:2018-03-23 14:09:22      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:完全   功能   body   组合   初始   lob   nbsp   上下文   alt   

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

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

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() 的区别?

标签:完全   功能   body   组合   初始   lob   nbsp   上下文   alt   

原文地址:https://www.cnblogs.com/xiaoan0705/p/8629769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!