Javascript对象键作为变量

coc*_*ave 3 javascript

我有一个对象:

let object1 = { a: 'one', b: 'two', c: 'three' };
Run Code Online (Sandbox Code Playgroud)

我正在尝试将object1.a设置为object2的键:

object2 = { key: 'something' };
Run Code Online (Sandbox Code Playgroud)

我试图把钥匙作为:

[object1].a

object1.a

object1[a]
Run Code Online (Sandbox Code Playgroud)

我记得我必须使用括号表示法,但无法弄清楚如何做到这一点?

我想这样做的原因是因为我要根据道具改变object1的值,所以我可以只根据收到的道具改变一个组件.

T.J*_*der 11

如果object2已存在,则只使用括号表示法:

object2[object1.a] = 'something';
Run Code Online (Sandbox Code Playgroud)

现在,object2有一个名为one具有值的属性'something'.

如果您正在创建 object2,则必须先在ES5中单独创建对象,然后添加属性:

var object2 = {};
object2[object1.a] = 'something';
Run Code Online (Sandbox Code Playgroud)

在ES2015("ES6")中,您可以在初始化程序中使用计算属性名称(注意[]):

// ES2015 only!
let object2 = {
    [object1.a]: 'something'
};
Run Code Online (Sandbox Code Playgroud)

就像在执行赋值时使用括号表示法一样,您可以在初始值设定项的括号内使用任何表达式.

请注意,这并不能创建对象之间的持续联系.它纯粹评估object1.a处理初始化程序时的值,并使用结果值作为新对象上新属性的名称.