call()和apply()

  call()和apply()是函数内置的方法,所有的函数都具有这两个方法。这两个方法是通过函数名来调用的。使用方法为:传递一个对象作为参数,这个对象来调用这个函数。

比如:

function test(a,b){

this.a=a;

this.b=b;

}

test.call(obj,1,2);

这里有一个函数为test(),然后test函数调用了call方法。这样,obj这个对象就有了test()这个方法,并且test方法传递的参数是1和2。

apply()方法与call()方法类似,但是apply方法只有两个参数,一个是obj对象,一个是test()函数的参数构成的数组。

比如:test.apply(obj,[1,2]);

使用实例:
求数组中的最大最小值:

<script>

Array.max=function(array){

return Math.max.apply(Math,array);

}

Array.min=function(array){

return Math.min.apply(Math,array);

}

var a=[1,2,3,4,5];

alert(a);

alert(Array.max(a));

alert(Array.min(a));

</script>

在这个例子里面,Math对象调用了Math.max和Math.min方法,这两个方法是原生的。传入的参数是array数组。

原文地址:https://www.cnblogs.com/lionisnotkitty/p/6278320.html