2016-10-12 13:53发布
请问下,什么时候使用这两个调用函数?这两个的区别,以及分别什么情况下使用?
call方法可以看做是apply方法的语法糖,call的第二个参数可以单个单个去写Math.max.call(null,2,3,4) returns 4
实际上, 深入挖掘分析这两个方法的差别并无卵用. 看楼上都说得差不多, 我从日常使用的角度说一下我的看法.
apply(thisArg,[argsArray])argsArray:类数组最简单的就是Math.max(2,3) returns 3var arr = [2,3,4]想要获取arr的最大值,可以借用Math.max方法,借用就需要用到apply callMath.max.apply(null,arr) returns 4
每个函数都包含两个非继承而来的方法:apply() 和 call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内 this 对象的值。首先,apply() 方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中,第二个参数可以是 Array 的实例,也可以是 arguments 对象。例如:
apply()
call()
this
Array
arguments
最多设置5个标签!
付费偷看金额在0.1-10元之间
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
对象。例如:一周热门 更多>