函数----call()和apply()的异同
相同点:
(1)作用相同:call()和apply()都能改变this指向,都是调用一个对象的一个方法,用另一个对象替换当前对象;
(2)第一个参数:第1个参数都是对象。
不同点:
(1)参数不同:
call()不定参,call(obj,arg1,arg2,arg3...)
apply()只有2个参数,apply(obj,[arg1,arg2,arg3...])
(2)apply还可以应用于数组取最大值和最小值:
Math.max.apply(null,array) Math.min.apply(null,array)
(3)apply还可以实现两个数组的合并:
var arr=new Array("1","2"); var list=new Array("3","4"); Array.prototype.push.apply(arr,list); //push返回合并后数组的长度