【发布时间】:2013-09-08 00:15:50
【问题描述】:
我正在使用 require.js,我的一个模块需要另一个,但对它的导出不感兴趣(它是一个 jQuery 插件),即在代码中
define(['jquery', 'jquery.mousewheel', 'fabric'], function ($, something, fabric) {
// ...
}
我对@987654324@ 不感兴趣。当然,我可以将我不感兴趣的结果的依赖项移动到数组的末尾,并在我的函数中省略相应的“尾随”参数,但为了便于阅读,我想保持它们如图所示。这让我想到了这个问题......
在函数定义中标记忽略参数的 JavaScript 习惯用法是什么?
当然我知道我可以使用任何不鼓励我使用变量的名称:
someMethodWithCallback(1, 2, 3, function (dx, notinterested1, notinterested2, point) {
// ...
});
并且很惊讶以下工作(至少在 Chrome 中)(因为undefined is not a keyword):
someMethodWithCallback(1, 2, 3, function (dx, undefined, undefined, point) {
// ...
});
当然,在函数内部更改undefined 值可能非常容易出错...
忽略参数值 Perl 有undef,StandardML 有_; JavaScript 有类似的东西,至少在“民间传说”层面?
【问题讨论】:
-
您也可以使用
shim选项来加载jQuery 插件。 stackoverflow.com/a/10813415/1331430 -
我知道,我知道。但是,我对他们的出口不感兴趣。
-
shim: { 'jquery.mousewheel': ['jquery'] }我相信不会创建任何导出。但回到主要问题,我不知道任何语义。我只是正确命名参数而不使用它。这至少说明了为什么参数首先存在。 -
对,垫片不会创建导出。但是无论如何我都必须在函数中为导出添加一个“占位符”参数(这将被分配未定义的值)。
-
如果你知道参数永远不会被传递 undefined 或 null,你可以这样做:
someMethodWithCallback({}, {}, {}, function ...。请注意,现代 JS 引擎会生成一个空模式警告,这就是为什么这是评论而不是答案。
标签: javascript undefined