动态对象属性名称?

16

我该如何实现这个:

var name = otherObject.name; //"string"
var o = { 
            name : otherObject
        };
alert(o["string"].name);
1个回答

38

使用方括号表示法。

var name = otherObject.name;
var o = {};
o[name] = otherObject;

或者,在现代JavaScript中:

var o = {
  [name]: otherObject,
};

由于这是一个不错的重复目标,更具体地说“现代JavaScript”可能会更有帮助。这种语法是在ECMAScript 2015中引入的,称为计算属性名。如果您想直接引用规范,这里是规范的ComputedPropertyName表达式链接。 - Patrick Roberts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接