javascript - 对象字面量/初始化程序中的自引用

标签 javascript object-literal

有什么方法可以让像下面这样的东西在 JavaScript 中工作吗?

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

在当前形式中,此代码显然会引发引用错误,因为 this 并未引用 foo。但是有什么方法可以让对象字面量属性中的值依赖于之前声明的其他属性吗?

最佳答案

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

var foo = {
  a: 5,
  b: 6,
  get c() {
    return this.a + this.b;
  }
}

console.log(foo.c) // 11

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

关于javascript - 对象字面量/初始化程序中的自引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860078/

相关文章:

javascript - 为什么jQuery调整宽高需要大括号?

JavaScript 属性访问 : dot notation vs. 括号?

javascript - 为什么在jQuery中经过for循环后数组顺序是随机的?

javascript - CSS 裁剪图像以适应屏幕宽度,同时保持图像的原始高度

javascript - 如何在带有 js 流的对象字面量中指定 this

javascript - 使我的 LiveTime 对象成为文字

javascript - 在 Javascript 中创建对象的方式有何不同?

javascript - Canvas 曲线

javascript - HSB 平滑色彩过渡

javascript - 使用node或express返回json格式的正确方法