7

我一直在研究一些流行的console.log()包装器/polyfills:

我注意到他们都接受 multiple arguments,但他们都做这样的事情:

console.log(arguments);

这会导致这样的输出(在 Chrome 中):

<code>console.log(['foo', 'bar', $('body')])</code>

然而,至少在 Chrome 或 Firefox 等现代浏览器中,console.log()也接受多个参数,因此这将产生(恕我直言)卓越的输出:

console.log.apply(console, arguments)

这会导致这样的输出(在 Chrome 中):

<code>console.log.apply(console, ['foo', 'bar', $('body')])</code>

有什么特别的原因我应该避免使用console.log.apply()多个参数吗?或者这只是品味或节省字节的问题?

4

2 回答 2

1

我个人建议您仅.apply()在必须时使用:.apply()是传递数组作为函数参数的唯一方法。如果您不需要传递数组,则只需使用console.log(). 它不那么冗长,而且是直接调用。

于 2012-11-10T23:29:55.747 回答
0

请注意,它apply需要一个参数数组

因此,调用console.log(args)必须是console.log.apply(console, [args]),而不是console.log.apply(console, args)表现得平等-在您的示例中,数组中的每个项目都成为他自己的应用参数。

另一方面,您也可以致电console.log("foo", "bar", $("body"))

于 2017-06-13T07:42:23.017 回答