访问内部属性名称以计算 ES6 中的新属性

Access internal Property Name to Compute New Property in ES6

本文关键字:属性 新属性 计算 内部 访问 ES6      更新时间:2023-09-26

我有对象。我想添加属性,但我想在定义期间计算object中所有属性的suffix

var myObject = {
    foo: "bar",
    [ "prop_" + "Access foo property: foo" ]: 42
};

以下是我的预期输出:

{
    foo: "bar",
    prop_bar: 42
}

不是我无法实现它。 我可以通过下面的代码片段实现,并且它工作正常,但我希望在声明期间完成此操作。

let myObject = {
    foo: "bar"
};
myObject[ "prop_" + myObject['foo'] ] = 'hello'

审稿人注意:我已经审查了以下问题。

  1. ES6/ES7 中有简写吗?
  2. ES6 对象文本属性值速记
  3. 如何在节点/iojs 中使用 ES6 计算的属性名称?
  4. ES6 计算(动态)属性名称

我觉得会有比上述方法更好的解决方案,以下是我的问题。

对于这种情况,最佳方法是什么?

我们有多少种方法可以实现这一目标?

在声明期间不可能?

您可以创建工厂函数来执行此操作,例如:

const create = v => ({
    foo: v,
    ["prop_" + v]: 42
});
let myObject = create("bar");

或内联:

let myObject = (v => ({
    foo: v,
    ["prop_" + v]: 42
}))("bar");