call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向;
而在参数方面两个方法也有区别:
function fun(){
////
}
func.apply(this,[arg1,arg2]);
func.call(this,arg1,arg2);
我们看到两个方法的参数不同但是效果是一样的。
也就是说在运用apply的时候他会把数组拆分为它的每一个内容
[1,2,3] => 1,2,3
所以当我们遇到 Math.min(arg1,arg2,arg3) 不支持传入数组参数的方法我们可以用apply方法拆分数组。
var a = [1,2,3];
Math.min.apply(null,a);
//这样就达到了选出数组中最小数字的目的。非常方便。