是否有任何标准方法可以在 JavaScript 中将函数参数标记为未使用,类似于在 Ruby 中使用下划线开始方法参数?
问问题
36658 次
5 回答
58
就这样我们有一个例子可以工作,这在 jQuery$.each
中很常见,您在其中编写不需要索引的代码,只需要值,在迭代回调中($.each
相对于 向后Array#forEach
):
$.each(objectOrArrayLikeThing, function(_, value) { }
// Use value here
});
Using_
是我见过的最接近标准的方法,是的,但我也见过很多其他方法——给它一个反映其目的的名称(index
),调用它unused
等。
如果您需要忽略多个参数,则不能重复相同的标识符(在严格模式下是不允许的,这应该是每个人的默认值,并且是模块和class
构造中的默认值),因此您可以执行_0
and_1
或_
and之类的操作__
,等等
于 2015-08-25T07:31:05.537 回答
37
使用解构赋值,可以做到:
function f(...[, , third]) {
console.log(third);
}
f(1, 2, 3);
于 2019-11-06T20:46:16.383 回答
26
使用支持解构的浏览器可以:
function ({}, {}, value) {
// console.log(value)
}
这很简洁,因为它避免了多个参数具有相同名称的问题,并且也不会对分配方法的库产生问题_
(lodash,下划线等)。
这种方法的一个问题是未使用的类型undefined
或参数null
将抛出。
一种解决方案是使用undefined
默认参数:
function ({}={}, {}={}, value) {
// console.log(value)
}
遗憾的是,没有这样容易应用的解决方案null
。
于 2016-06-03T12:11:37.363 回答
11
我会推荐这种语法:
function(_index, value) {...}
不要隐藏 lodash 变量,并且仍然有参数的描述,以防万一它被使用。
VS Code 也会正确突出显示这些名称,并且这些未使用的参数在自动修复代码气味后不会被删除
于 2019-05-16T09:02:16.293 回答
0
使用function
arguments
对象怎么样?
function third() { const [,,thirdArg] = arguments;
return thirdArg;
}
console.log(third(1,2,3));
于 2019-06-20T16:30:16.127 回答