我尝试创建一个这样的字典对象
var obj = { varName : varValue };
我期望的是如果是 varName='foo' obj 应该是 {'foo', 'some value' }但我看到的是 {varName, 'some value'}变量的值没有被使用变量名作为键。如何使用变量 value 作为键?
varName='foo'
{'foo', 'some value' }
{varName, 'some value'}
Try like this:
var obj = {}; obj[varName] = varValue;
You can't initialize objects with 'dynamic' keys in old Javascript. var obj = { varName : varValue }; is equivalent to var obj = { "varName" : varValue };. This is how Javascript interprets.
var obj = { "varName" : varValue };
However new ECMAScript supports computed property names, and you can do:
var obj = { [varName]: varValue };
Starting with ECMAScript 2015, which has gotten better browser support in the last year(s), you can use the variable index notation:
const obj = { [varName] : varValue };
This is syntactically the same as
You can also use expressions or Symbols as property key:
const contact = { company: companyName, }; const companiesWithContacts = { [contact.company.toLowerCase()]: true };
const myList = { [Symbol.iterator]: createIteratorForList }; function createIteratorForList() { ... }