apply.call问题 财富值65

2016-10-12 13:53发布

请问下,什么时候使用这两个调用函数?这两个的区别,以及分别什么情况下使用?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答

call方法可以看做是apply方法的语法糖,call的第二个参数可以单个单个去写
Math.max.call(null,2,3,4) returns 4

实际上, 深入挖掘分析这两个方法的差别并无卵用. 看楼上都说得差不多, 我从日常使用的角度说一下我的看法.

apply(thisArg,[argsArray])
argsArray:类数组
最简单的就是Math.max(2,3) returns 3
var arr = [2,3,4]
想要获取arr的最大值,可以借用Math.max方法,
借用就需要用到apply call
Math.max.apply(null,arr) returns 4

每个函数都包含两个非继承而来的方法:apply()call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内 this 对象的值。首先,apply() 方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中,第二个参数可以是 Array 的实例,也可以是 arguments 对象。例如:

一周热门 更多>