node.js中的默认参数

how*_*cow 27 parameters default callback node.js

如何在node.js中设置默认参数?

例如,假设我有一个通常看起来像这样的函数:

function(anInt, aString, cb, aBool=true){
   if(bool){...;}else{...;}
   cb();
}
Run Code Online (Sandbox Code Playgroud)

要调用它看起来像这样:

function(1, 'no', function(){
  ...
}, false);
Run Code Online (Sandbox Code Playgroud)

要么:

function(2, 'yes', function(){
  ...
});
Run Code Online (Sandbox Code Playgroud)

但是,似乎node.js不支持这种方式的默认参数.上面的最佳方法是什么?

mik*_*ana 77

2017答案:节点6及以上包括ES6默认参数

var sayMessage = function(message='This is a default message.') {
  console.log(message);
}
Run Code Online (Sandbox Code Playgroud)


小智 11

最简单的解决方案是在函数内部说

var variable1 = typeof variable1  !== 'undefined' ?  variable1  : default_value;
Run Code Online (Sandbox Code Playgroud)

所以这样,如果用户没有提供variable1,则用默认值替换它.

在你的情况下:

function(anInt, aString, cb, aBool) {
  aBool = typeof aBool  !== 'undefined' ? aBool : true;
  if(bool){...;}else{...;}
  cb();
}
Run Code Online (Sandbox Code Playgroud)