日期:2014-05-16  浏览次数:20303 次

apply(null,array_of_numbers) null代表什么??????
如果是   null   的话     列如     Math.max.apply(null,array_of_numbers)

是不是变成了     null.max(....)?

------解决方案--------------------
很容易理解,主要是你还不理解apply的使用

a=[10,20,30]
alert(Math.max(10,20,30))
alert(Math.max.apply(null,a))

看看这个。
因为Math.max传递的参数不能为数组,为了方便,可以用apply方法来实现用数组的参数来传递,这是很多时候运用的一个小技巧罢了。而第一个参数,是要替代的对象。没有要替代的,用null,也是很自然的。当然你也可以用call方法,如果用call方法,就和直接调用Math.max一样了,call和apply的功能是一样的。

再比如:
function foo () {
bar.apply(null,arguments);
}

function bar () {
for (var i=0; i <arguments.length; i++) {
alert(arguments[i]);
}
}

foo( "I ", "am ", "never-online ")