javascript - 如何从具有默认值的对象中获取值

标签 javascript object

我经常发现自己将配置值传递给像这样访问它们的函数:

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/

相关文章:

javascript - 调用在函数内创建的对象中的方法

java - 从另一个对象的方法更改对象变量

java - 访问有关数组列表中的对象的信息

javascript - 如何在java脚本中声明未知大小的用户定义对象数组

javascript - 如何舍入对象内的数字

Java:强制字符串名称被接受为类?

javascript - 在另一个图像之上加载图像

javascript - 如果我用 jquery 得到 "top",这是什么意思?

javascript - 如何使用 jquery Ajax 和 json 数据将标签包装在 for 循环内?

Javascript - 无法确定 JSON 对象是否包含 true