我需要在不使用变量赋值的情况下从子对象引用父对象,类似于super关键字,但是从字面上看,我的示例是:
{ a:1,
b:{e:a}
}
有一个解决方案
var obj = {
a: 1,
b: {
get e() {
return obj.a
}
}
} 但是我问是否有可能不将对象常量分配给变量
答案 0 :(得分:4)
您可以使用this
来引用同一级别的对象,但在您的情况下,它是嵌套的,因此请使用嵌套的getter保留父上下文。
var obj = {
a: 1,
get b() {
const pctx = this;
return {
get e() {
return pctx.a
},
c: 1
}
}
}
console.log(obj.b.e)
注意:这样,嵌套对象的引用每次都会不同,并且您无法更新嵌套对象的属性。