我正在尝试像这样创建一个字典对象
var obj = { varName : varValue };
我期待的是,如果varName='foo'
,obj 应该是{'foo', 'some value' }
但是我看到的是{varName, 'some value'}
变量的值没有被使用,而是变量名作为键。如何使变量值用作键?
我正在尝试像这样创建一个字典对象
var obj = { varName : varValue };
我期待的是,如果varName='foo'
,obj 应该是{'foo', 'some value' }
但是我看到的是{varName, 'some value'}
变量的值没有被使用,而是变量名作为键。如何使变量值用作键?
试试这样:
var obj = {};
obj[varName] = varValue;
您不能在旧 Javascript 中使用“动态”键初始化对象。var obj = { varName : varValue };
相当于var obj = { "varName" : varValue };
。这就是 Javascript 的解释方式。
然而,新的 ECMAScript 支持计算属性名称,您可以这样做:
var obj = { [varName]: varValue };
从去年获得更好的浏览器支持的 ECMAScript 2015 开始,您可以使用变量索引表示法:
const obj = { [varName] : varValue };
这在语法上与
var obj = {};
obj[varName] = varValue;
您还可以使用表达式或符号作为属性键:
const contact = {
company: companyName,
};
const companiesWithContacts = {
[contact.company.toLowerCase()]: true
};
const myList = {
[Symbol.iterator]: createIteratorForList
};
function createIteratorForList() { ... }