在JavaScript中,当不指定键将一个存储在变量中的对象添加到另一个对象中时,使用变量名作为键并不是预期行为。实际上,变量名会被解析为一个字符串,并将这个字符串作为键来添加对象。
如果想要将一个存储在变量中的对象添加到另一个对象中,并使用变量名作为键,可以使用计算属性名来实现。计算属性名允许在对象字面量中使用表达式来作为键。
下面是一个示例代码,展示了如何使用计算属性名将一个存储在变量中的对象添加到另一个对象中,使用变量名作为键:
const obj1 = { name: 'Alice' };
const key = 'obj1';
const obj2 = {
[key]: obj1
};
console.log(obj2);
// 输出: { obj1: { name: 'Alice' } }
在这个示例中,我们首先创建了一个名为obj1
的对象,并将其存储在变量中。然后,我们创建了一个名为key
的变量,并将其值设置为字符串'obj1'
。接下来,我们使用计算属性名[key]
将obj1
添加到obj2
对象中。最后,我们打印出obj2
对象,可以看到obj1
作为键,{ name: 'Alice' }
作为值。
使用计算属性名,我们可以通过变量名作为键来添加对象,而不是将变量名直接解析为字符串。这样可以实现预期的行为。