有没有更好的方法来处理默认 true
Is there a better way to deal with default true?
首先我尝试了这个:
var coolFunc = function(options) {
var minNum = options.minNum || true,
// rest of the function
}
但这永远不会导致 false 作为 minNum var 的值。
所以现在我正在这样做:
var coolFunc = function(options) {
var minNum = options.minNum;
if (minNum === undefined) minNum = true;
// rest of the function
}
有没有更标准的方法?
这是
正确的方法。
一个常见的变体是
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
。
但这并不是一个很大的收获,尤其是当你不期望虚假的价值观时,所以大多数时候我不在乎。
此变体可能比三元建议更直接:
var minNum = (typeof options.minNum !== 'boolean') || options.minNum;
或
var minNum = (! "minNum" in options) || options.minNum;
相关文章:
- 是否存在添加两个相同事件处理程序的默认行为
- 将事件处理程序放在HTML按钮上,而不覆盖其默认功能
- $q:默认拒绝处理程序
- 如何在更改的事件处理程序中忽略Polymer元素上默认属性的初始覆盖
- JavaScript:将所有事件处理程序重置为默认值/禁用自定义处理程序
- 处理Ember.js默认路由之外的页面URL哈希参数
- Jquery OOP 模型阻止默认然后调用基处理程序
- 如何正确处理空的、遗漏的、默认的表单值
- 有没有更好的方法来处理默认 true
- 在 Javascript 中,如何从父事件处理程序中防止子元素的默认
- JS:如何防止中键的默认处理
- 我们可以只使用“if (a === undefined)”来处理 ES6 之前的 JavaScript 中的默认参数值吗
- 通过javascript处理默认配置文件图像的更好方法
- JavaScript:处理默认值为true的函数参数
- 如何将事件处理程序绑定到Google Maps V3 API默认PanControl's单击事件
- angular js中的默认错误处理程序
- Angular:自定义事件处理程序的顺序&默认处理程序
- restify.serveStatic不处理默认文档
- 使用 jquery.validationEngine.js 处理默认表单值
- 在jquery- locale中处理默认语言