我一直在研究一些流行的console.log()
包装/填充:
我注意到他们都接受了多个arguments
,但他们都做了这样的事情:
console.log(arguments);
这导致像这样的输出(在Chrome中):
然而,至少在像Chrome或Firefox这样的现代浏览器中,console.log()
也接受多个参数,这样就可以产生(恕我直言)卓越的输出:
console.log.apply(console, arguments)
这导致像这样的输出(在Chrome中):
为什么我应该避免将console.log.apply()
用于多个参数?或者这仅仅是品味还是节省字节?
答案 0 :(得分:1)
我个人建议您在必须时只使用.apply()
:.apply()
是将数组作为函数参数传递的唯一方法。如果您不需要传递数组,那么只需使用console.log()
即可。它不那么冗长,而是直接调用。
答案 1 :(得分:0)
请注意,apply
需要数组参数!
因此调用console.log(args)
必须是console.log.apply(console, [args])
,而不是console.log.apply(console, args)
才能表现相同 - 在您的示例中,数组中的每个项目都成为他在申请中的自己的参数。
另一方面,您也可以拨打console.log("foo", "bar", $("body"))