繁体   English   中英

JavaScript 嵌套对象默认值

[英]JavaScript nested object default value

所以如果我有一个像这样定义的对象:

var object = {
    prop1: 'val1',
    prop2: 'val2',
    prop3: {
         subprop1: 'subval1',
         subprop2: 'subval2',
         subprop3: 'subval3'
    }
}

我想知道的是是否有办法设置“默认”值,所以如果我调用:

object.prop3

我不想得到:

Object {subprop1: "subval1", subprop2: "subval2", subprop3: "subval3"} 

相反,我想:

defaultsubval

任何帮助,将不胜感激。

正如上面提到的 cookie Monster 和 jfriend00。 仅使用对象符号是不可能的。 Javascript 只是不能那样工作。 但是,我通过获取请求的子对象的名称找到了另一种做同样事情的方法

以下是使用Symbol 的 toPrimitive 的方法

const myTheme = {
  prop1: 'val1',
  prop2: 'val2',
  color: {
    darker: 'orange',
    lighter: 'white'
  }
}

Object.defineProperty(myTheme.color, Symbol.toPrimitive, {
  value: () => 'yellow'
});

所以,我们得到了类似的东西:

console.log('primary color: ' + myTheme.color.darker) // returns "primary color: orange"
console.log('primary color: ' + myTheme.color) // returns "primary color: yellow"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM