是的。使用括号表示法(这是MDN 中的教程)
这是一个工作小提琴
当containingObject[stringVariable]
您执行类似访问的属性时,该属性containingObject
的名称是存储在stringVariable
.
// this assumes browser JavaScript where window is the global namespace
// in node.js this would be a little different
var i=0;
while(i<10){
window["counters"+i] = "This is loop has ran " + i + "times.";
i++;
}
console.log(counters3);
如果您愿意,可以使用this
而不是窗口,但是这在严格模式下可能会失败。
以下是上面 MDN 链接中括号符号如何工作的主要解释:
JavaScript 对象的属性也可以使用方括号表示法访问或设置。对象有时称为关联数组,因为每个属性都与可用于访问它的字符串值相关联。因此,例如,您可以按如下方式访问 myCar 对象的属性:
myCar["make"] = "Ford";
myCar["model"] = "Mustang";
myCar["year"] = 1969;
您还可以使用存储在变量中的字符串值来访问属性:
var propertyName = "make";
myCar[propertyName] = "Ford";
propertyName = "model";
myCar[propertyName] = "Mustang";