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数组。