首先我尝试了这个:
var coolFunc = function(options) {
var minNum = options.minNum || true,
// rest of the function
}
但是,这永远不会导致minNum var。
的值为false所以现在我这样做:
var coolFunc = function(options) {
var minNum = options.minNum;
if (minNum === undefined) minNum = true;
// rest of the function
}
有更标准的方法吗?
答案 0 :(得分:3)
这是正确的方法。
常见的变体是
var coolFunc = function(options) {
var minNum = "minNum" in options ? options.minNum : true;
// rest of the function
}
我个人有时会使用效用函数:
function opt(options, key, defaultValue) {
if (options && key in options) return options[key];
return defaultValue;
};
所以我的功能是这样的:
var coolFunc = function(options) {
var minNum = opt(options, "minNum", true);
// rest of the function
}
一个小优势是它还会检查options
不是undefined
。
但这并不是一个很大的收获,特别是当你不期望虚假的价值观时,所以大多数时候我都不在乎。
答案 1 :(得分:0)
这种变体可能比三元建议更直接:
var minNum = (typeof options.minNum !== 'boolean') || options.minNum;
或
var minNum = (! "minNum" in options) || options.minNum;