我从这个帖子上读到了这个函数
function log() {
console.log.apply(console, arguments);
}
它的工作方式类似于如果参数分别传递给console.log() ,这是否意味着当调用日志(12,24,2)时,它可以被解释为下面的内容?
console.log(argument[0]);
.
.
.
console.log(argument[n]);
如果是这样的话,下面的代码行发生了什么变化?
var max = Math.max.apply( null, [12,45,92,78,4] );
为什么在这种情况下,arguments
不是单独解析的,
发布于 2014-04-27 19:27:11
“单独”指的是函数的单独参数,而不是单独的函数调用。
埃文直言不讳地说:
。。你的前提是不正确的。调用console.log.apply(控制台,12,24,2)与console.log(12,24,2)相同。
因此,Math.max.apply( null, [12,45,92,78,4] )
大致相当于Math.max(12,45,92,78,4)
,其结果是92 --扩展是通过参数进行的,而不是调用。这种行为在所有函数调用中都是一致的,无论是console.log
还是Math.max
。
有关更多详细信息,请参阅Function.apply。
apply()方法使用给定的值和作为数组(或类似数组的对象)提供的参数调用一个函数。
https://stackoverflow.com/questions/23327861
复制相似问题