【发布时间】:2022-01-08 13:19:02
【问题描述】:
要引用this.property,有一个getter:
var foo = {
a: 5,
b: 6,
get c() {
return this.a + this.b;
}
}
console.log(foo.c) // 11
但是,是否可以在对象初始化期间执行此操作:
var foo = {
HIDING: 0,
get state() {
return this.HIDING;
}
[this.HIDING]: { x: 0, y: 0 },
}
我期待
foo: {
HIDING: 0,
state: 0,
0: { x: 0, y: 0 }
}
Self-references in object literals / initializers 这没有回答我的问题,因为它没有谈论使用另一个属性值作为属性名称
【问题讨论】:
-
this.HIDING在对象初始化之前未定义 -
oof,为什么规范的欺骗目标不能正确涵盖这种情况......无论如何,不,您不能在对象初始化程序中进行自引用。只有在初始化程序完成后才能访问该对象。
-
@ASDFGerte 编辑答案?或者添加一个答案?
-
如果你想要“隐藏”属性,你可以在类声明中使用私有类属性,或者为属性标识符创建你自己的 Symbol 实例。
-
"对象文字/初始化程序中的自引用这不能回答我的问题,因为它没有谈论使用另一个属性值作为属性名称" - 请参阅 @987654322 @ 解释了为什么在创建对象之前无法引用属性值 - 无论您尝试从何处引用它
标签: javascript object this