我有一个对象:
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处理初始化程序时的值,并使用结果值作为新对象上新属性的名称.
| 归档时间: |
|
| 查看次数: |
6819 次 |
| 最近记录: |