Javascript console.log.apply()和Math.max.apply()
我从这个函数中读到Javascript console.log.apply()和Math.max.apply(),javascript,Javascript,我从这个函数中读到 function log() { console.log.apply(console, arguments); } 它的工作原理类似于将参数分别传递给console.log(),这是否意味着在调用log([12,24,2])时,可以将其解释为如下所示 console.log(argument[0]); . . . console.log(argument[n]); 如果是这样,下面的代码行会发生什么 var max = Math.max.apply( null,
function log() {
console.log.apply(console, arguments);
}
它的工作原理类似于将参数分别传递给console.log(),这是否意味着在调用log([12,24,2])时,可以将其解释为如下所示
console.log(argument[0]);
.
.
.
console.log(argument[n]);
如果是这样,下面的代码行会发生什么
var max = Math.max.apply( null, [12,45,92,78,4] );
为什么在这种情况下,参数
没有被单独解析?“单独”是指函数的单独参数,而不是单独的函数调用
正如埃文如此直截了当地说的:
。。你的前提是错误的。调用console.log.apply(console[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
,所有函数调用的行为都是一致的
有关更多详细信息,请参阅 apply()方法使用给定的此值和作为数组(或类似数组的对象)提供的参数调用函数[一次]
除非我误解了你,否则你的前提是错误的。调用
console.log.apply(console[12,24,2])
与console.log(12,24,2)
是一样的。你能读懂第二个答案吗,的意思是什么……好像你分别传递了它们。
?@Blake:在研究工作中:你有没有尝试执行console.log.apply(console[12,24,2]))
和console.log(12,24,2)
在调试器控制台中查看您得到了什么?是的,给出了[12,24,2],我想我在那篇文章中分别误解了的含义