这一行:
var temp = {siteID:siteName};
...创建一个包含属性的对象,该属性siteId
使用从siteName
变量中获取的值调用。
如果您希望从siteID
变量中获取属性名称:
var temp = {};
temp[siteID] = siteName;
或者在 ES2015(又名“ES6”)中,您可以使用新的计算属性名称语法:
// ES2015+ only!
var temp = {[siteId]: siteName};
在 JavaScript 中,您可以通过两种不同但相同的方式访问/创建对象的属性: 使用带有文字属性名称的点分表示法:
obj.foo = "bar"; // Creates a `foo` property on `obj` with the value `"bar"`
...或使用括号表示法和字符串:
obj["foo"] = "bar"; // Does the same thing
像你这样的对象初始化器中的键var temp = {siteID:siteName};
总是按字面意思使用(尽管它们可以选择用引号引起来);对象初始化器无法从变量中获取键。因此,您必须分两步进行,首先创建对象,然后设置属性。
所以,如果你这样做
temp[siteID] = siteName;
... in 中的数字siteID
将转换为字符串,并将成为属性名称,其中 valuesiteName
是 value。
var temp = {};
var key = 1;
temp[key] = "value";
console.log(temp[1]); // "value"
console.log(temp["1"]); // "value"
(属性名称在 JavaScript [暂时] 中始终是字符串。)