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 第 5 版规范引入的语法扩展,大多数现代浏览器(包括 IE9)都支持该语法。

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

相关文章:

javascript - IE 8 的 window.open() 方法 - 强制窗口在选项卡之外打开

javascript - 如何选择具有 class 属性且值完全以给定字符串开头的元素(使用 jQuery)?

javascript - Object.hasOwnProperty() 产生 ESLint 'no-prototype-builtins' 错误 : how to fix?

javascript - 如何从数组中检索和访问 javascript 对象文本中的字段?

javascript - 在 javascript 对象字面量中添加注释

javascript - 计算矩阵的行列式

javascript - Angular 2 测试具有虚假依赖项的组件

javascript - 在具有多个级别的对象文字中迭代和搜索值

用于快速查找和有序循环的 JavaScript 数据结构

javascript - 在 javascript 中,是否可以使用计算属性名称字符串的表达式来构造对象文字?