首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >console.log.apply()和Math.max.apply()

console.log.apply()和Math.max.apply()
EN

Stack Overflow用户
提问于 2014-04-27 19:20:53
回答 1查看 2K关注 0票数 0

我从这个帖子上读到了这个函数

代码语言:javascript
运行
复制
function log() {
    console.log.apply(console, arguments);
}

它的工作方式类似于如果参数分别传递给console.log() ,这是否意味着当调用日志(12,24,2)时,它可以被解释为下面的内容?

代码语言:javascript
运行
复制
console.log(argument[0]);
.
.
.
console.log(argument[n]);

如果是这样的话,下面的代码行发生了什么变化?

代码语言:javascript
运行
复制
var max = Math.max.apply( null, [12,45,92,78,4] );

为什么在这种情况下,arguments不是单独解析的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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()方法使用给定的值和作为数组(或类似数组的对象)提供的参数调用一个函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23327861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档