【发布时间】:2013-11-10 22:36:14
【问题描述】:
是否可以通过将两个字符串连接在一起形成名称来设置变量?
如果可能的话,我想根据用户单击的对象的类名来确定要设置的变量。我知道我可以硬编码一堆 if/else if 语句,但如果我可以间接引用这些变量,那就太酷了。我在想这样的事情:
var owner_read;
var group_read;
function setVariableIndirectly(object){
var second = object.className; // returns "read"
var first = object.parentElement.className; // returns "group"
first + "_" + second = "set this as the new variable";
}
有什么办法吗?
编辑:
这是数据来自的 html。
<p class="owner">
<span class="read" onclick="permissionClick(this)">r</span>
<span class="write" onclick="permissionClick(this)">w</span>
<span class="execute" onclick="permissionClick(this)">x</span>
</p>
【问题讨论】:
-
JavaScript 中没有带有“动态名称”的变量(不包括
eval和new Function恶作剧);存在的是具有“动态名称”的(对象的)属性。我会避免使用window作为这样的容器以避免冲突(你会找到这些!)并减轻“全球污染”,而是使用一些 [internal] 对象的属性。
标签: javascript variables concatenation indirection