如何最好地将参数标记为忽略

pwe*_*wes 6 javascript undefined

我正在使用require.js,而我的一个模块又需要另一个模块,但是对它的导出(这是一个jQuery插件)不感兴趣,即对代码不感兴趣

define(['jquery', 'jquery.mousewheel', 'fabric'], function ($, something, fabric) {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

我对没兴趣something。当然,我可以将不感兴趣的结果的依存关系移到数组的末尾,而只对函数省略相应的“ trailing”参数,但是出于可读性考虑,我希望将它们保持如图所示。这就引出了我的问题...

在函数定义中标记被忽略的参数的JavaScript惯用法是什么?

当然,我知道我可以使用任何阻止使用变量的名称:

someMethodWithCallback(1, 2, 3, function (dx, notinterested1, notinterested2, point) {
  // ...
});
Run Code Online (Sandbox Code Playgroud)

对于以下各项(至少在Chrome中)有效(并且因为undefined不是关键字),我感到很惊讶:

someMethodWithCallback(1, 2, 3, function (dx, undefined, undefined, point) {
  // ...
});
Run Code Online (Sandbox Code Playgroud)

但是当然改变undefined函数内部的值可能很容易出错...

要忽略Perl具有的参数值undef,StandardML具有_; JavaScript是否至少在“民俗”级别上具有类似的功能?

rai*_*7ow 6

我们的团队遵循的约定是Erlang的约定:这些变量的名称前面带有_。实际上,它在jQuery回调中经常使用:

$.each(someArray, function(_i, el) { ... });
Run Code Online (Sandbox Code Playgroud)

这样,您仍然可以看到被忽略参数的含义,但同时也可以理解它确实被忽略了。

  • 请注意,使用重复的形式参数将在严格模式下引发SyntaxError。 (3认同)