【发布时间】:2012-02-21 10:00:50
【问题描述】:
全部,
我使用JSLint 来验证我的 JS 文件。在我最近的项目中,我使用以下格式为许多 JavaScript 函数设置默认值(更详细的here):
function(a, b, option) {
option = arguments.length > 2 ? option : "some default value";
// ...
}
然而,这会导致最新版本的 JSLint 产生以下错误:
"Do not mutate parameter 'option' when using 'arguments'."
我知道使用更常见的方法来分配默认值(即option = option || {};)会抑制错误;但是,如果我打算将 falsey 值传递给 option,这将产生不正确的行为。
这个问题的唯一解决方案是引入一个新变量吗?例如:
var option2 = arguments.length > 2 ? option : "some default value";
【问题讨论】:
-
一个局部变量,也就是你的“引入第二个参数”是一个更好的解决方案。
标签: javascript parameters jslint