我经常发现自己将配置值传递给像这样访问它们的函数:
var arg1 = 'test1';
if(isUndefined(config.args.arg1)){
arg1 = config.args.arg1;
}
var arg2 = 'param2';
if(isUndefined(config.args.arg2)){
arg2 = config.args.arg2;
}
var arg3 = '123';
if(isUndefined(config.args.arg3)){
arg3 = config.args.arg3;
}
以后我会像这样使用它们:
var url = '<some-url>?id='+arg1+'&='+arg2 +'=' + arg3;
jQuery/ExtJS 或任何其他框架是否提供一种解决方案来以简单的方式访问这样的变量,并为变量提供默认值?
类似于:
getValueOfObject(config,'args.arg3','<default>');
或者是否有针对此的标准解决方案。
注意:
我也在考虑你有默认值的常见模式
var defaults = {
args: {
args1: ....
}
...
}
并进行对象合并。
然后将对象编码为参数字符串。但正如您所见,对象 values 有时也包含参数名称。
最佳答案
一般来说,可以使用or operator当某些变量计算为 falsy 时分配默认值:
var foo = couldBeUndefined || "some default";
所以:
var arg1 = config.args.arg1 || "test";
var arg2 = config.args.arg2 || "param2";
假设 config.args
始终被定义,正如您的示例代码所暗示的那样。
关于javascript - 如何从具有默认值的对象中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003999/