我正在想办法将函数数组参数设置为默认值(一个 ES5 而不是新的 ES6/2015)。
我的第一个想法是:
window.fnc = function(args){
defaults = {
height: 120,
width: 32
}
args = args || defaults;
console.log(args['height']+'x'+args['width'])
}
并且会像这样使用:
fnc({height:45, width:12}); //Result: 45x12
或
fnc(); //Result: 120x32
这工作正常。但是当然在第 7 行,args 被默认值替换或者不是,所以如果两个值中的任何一个丢失,我都会得到一个 undefined
。
fnc({height:45}); //Result: 45xundefined
我该怎么做?
最佳答案
我不时使用这个代码片段:
args = args || defaults;
for (var opt in defaults) {
if (defaults.hasOwnProperty(opt) && !args.hasOwnProperty(opt)) {
args[opt] = defaults[opt];
}
}
基本上,您遍历默认参数 (for (var opt...
) 的所有值,并检查参数的值是否丢失。(if (defaults.has...
)。如果缺少,请添加默认值 (args[opt] =...
)。
(我想我什至在 SA 上找到了这个片段,但不确定。如果是这样,我会添加指向原始答案的链接。)
关于Javascript 默认数组/对象参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539017/