如果是 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 ")