Javascript对象键作为变量

Javascript对象键作为变量,javascript,Javascript,我有一个目标: let object1 = { a: 'one', b: 'two', c: 'three' }; 我正在尝试将object1.a设置为object2的键: object2 = { key: 'something' }; 我试着把钥匙做成: [object1].a object1.a object1[a] 我记得我必须使用括号符号,但我不知道怎么做 我之所以要这样做,是因为我将根据道具更改object1的值,这样我就可以有一个组件根据收到的道具更改键。如果object2

我有一个目标:

let object1 = { a: 'one', b: 'two', c: 'three' };
我正在尝试将object1.a设置为object2的键:

object2 = { key: 'something' };
我试着把钥匙做成:

[object1].a

object1.a

object1[a]
我记得我必须使用括号符号,但我不知道怎么做


我之所以要这样做,是因为我将根据道具更改object1的值,这样我就可以有一个组件根据收到的道具更改键。

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

object2[object1.a] = 'something';
现在,
object2
有一个名为
one
的属性,其值为
'something'

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

var object2 = {};
object2[object1.a] = 'something';
在ES2015(“ES6”)中,可以在初始值设定项中使用计算属性名称(注意
[]
):

正如在赋值时使用括号表示法一样,在初始值设定项的括号内可以有任何表达式


请注意,这不会在对象之间创建持续链接。在处理初始值设定项时,它仅计算
object1.a的值,并将结果值用作新对象上新属性的名称。

object1.a=object2
?object1['a']=”;您可以这样使用它
object2['a']=object1['a']
object2[object1.a]=something谢谢,这是有效的:)我不知道你可以在括号内使用点符号。@cocacrave-你可以在方括号内放置任何表达式,例如,说
object2[condition?”test“:callFunc()+object1.a+“另一个字符串”]
。感谢//ES2015!提示:)
// ES2015 only!
let object2 = {
    [object1.a]: 'something'
};