所以,如果我有这样定义的对象:
var object = {
prop1: 'val1',
prop2: 'val2',
prop3: {
subprop1: 'subval1',
subprop2: 'subval2',
subprop3: 'subval3'
}
}
我想知道的是是否有一种方法可以设置“默认”值,所以如果我打电话:
object.prop3
我不想得到:
Object {subprop1: "subval1", subprop2: "subval2", subprop3: "subval3"}
相反,我想要:
defaultsubval
任何帮助将不胜感激。
正如上面提到的cookie怪物和jfriend00。仅使用对象表示法是不可能的。 Javascript不能那样工作。但是,我通过Getting the name of a requested subobject
找到了另一种执行相同操作的方法这是使用Symbol's 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"