小编典典

JavaScript 对象常量/初始化程序中的自引用

javascript

有什么办法可以使以下内容在JavaScript中起作用?

var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work
};

在当前形式下,此代码显然会引发引用错误,因为this未引用foo。但是, 是否 有任何方法可以使对象文字的属性值取决于先前声明的其他属性?


阅读 403

收藏
2020-04-22

共1个答案

小编典典

好吧,我唯一能告诉你的就是getter::

var foo = {

  a: 5,

  b: 6,

  get c() {

    return this.a + this.b;

  }

}



console.log(foo.c) // 11

这是ECMAScript第5版规范引入的语法扩展,大多数现代浏览器(包括IE9)都支持该语法。

2020-04-22