大体上说,apply方法和call方法的功能就是改变当前函数的this指向;
具体用法如下:
Function.call(obj[, param1[, param2[, [,...paramN]]]]);
Function.apply(obj[, argArray]);
可以看到,call和apply的区别主要是传入的参数类型不同:
-
apply()方法接收两个参数,一个是函数运行的作用域(
this
),另一个是参数数组。 -
call()方法不一定接受两个参数,第一个参数也是函数运行的作用域(
this
),但是传递给函数的参数必须列举出来。
备注:
一个关于在math.Max()和math.Min()函数中的应用:
因为Math.max
参数里面不支持Math.max([param1,param2])
,也就是数组,但是它支持Math.max(param1,param2,param3…)
,所以可以根据apply
来解决:
var array = [1, 2, 3];
var max = Math.max.apply(null, array);
console.log(max);//3
Math.min同理
用代码虚构一个你 发布了9 篇原创文章 · 获赞 0 · 访问量 138 私信 关注