JavaScript 对象声明中能否引用其他属性?

阅读时长 2 分钟读完

在 JavaScript 中,我们可以使用对象字面量语法快速创建一个对象。常常会遇到这样的需求:在对象声明时,需要使用到该对象的其他属性。那么,JavaScript 对象声明中是否允许引用其他属性呢?

答案是不行。

具体来说,如果你试图在对象声明中引用该对象已有的其他属性,会发生一个 ReferenceError。举个例子:

在上述代码中,我们正在尝试在 obj 的声明中引用其属性 prop1,但是由于此时 prop1 还没有被声明,所以会报错。

不过,我们仍然可以通过一些方法实现类似的效果。比如,在对象声明后,我们可以为其添加新的属性,这些属性可以引用该对象原先已有的属性:

还有一种方式是使用对象方法来获取对应的属性值,比如:

在上述代码中,我们为对象 obj 定义了一个 getter 方法 prop2,当我们访问 obj.prop2 时,实际上是调用了该方法来获取属性值。在方法内部,我们可以通过 this 关键字来引用对象自身的其他属性。

总结一下,JavaScript 对象声明中不允许引用其他属性,但是我们可以通过添加新属性或使用对象方法来达到类似的效果。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/28658

纠错
反馈