所以我在bit.ly/jqsource上提供的最新版jQuery上运行JSLint。我让测试尽可能松散,但我仍然会遇到错误。其中一个是第327行的“使用命名参数”:
target = arguments[0] || {},
这是什么意思?即使this blog post也不提供信息。
答案 0 :(得分:6)
这意味着代码使用arguments
集合而不是函数签名中指定的参数来访问参数:
您可以使用以下代码重现错误消息:
function x(a) {
var b = arguments[0];
}
使用named参数可以得到相同的结果而不会出现lint错误:
function x(a) {
var b = a;
}
答案 1 :(得分:2)
我认为它实际上是说“使用命名参数”而不是“variable”。
如果是这样,当您引用arguments
对象时,某些浏览器可能会出现性能下降。我猜这是抱怨的。
如果永远不会引用arguments
对象,某些浏览器会优化它们的创建。