在JavaScript中使用动态变量名
在PHP中你可以做这样惊人/可怕的事情:
$a = 1;
$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1
有没有办法用Javascript做这样的事情?
例如。如果我有一个var name = 'the name of the variable';
,我可以获得名称为name
的变量的引用吗?
没有找到相关结果
已邀请:
12 个回复
爆刺疤灯
和
(它们也是Object的某种类型),因此每个变量都存储在一个名为Variable的变量中(或者在函数,激活对象的情况下)。 所以如果你创建这样的变量:
在全局范围(= NO函数上下文)中,您隐式将这些变量写入Global对象(在浏览器中=
)。 可以使用“点”或“括号”表示法访问这些:
要么
这仅适用于此特定实例中的全局对象,因为全局对象的变量对象本身就是
对象。在函数的上下文中,您无法直接访问激活对象。例如:
创建自定义对象(上下文)的新实例。没有
,函数的范围也是
(=窗口)。这个例子将分别提醒
和
。如果我们用以下内容替换
:
两个警报输出都是未定义的。在那种情况下,变量
和
将从
存储在激活对象中,我们无法访问(当然我们可以通过调用
和
直接访问它们)。
际恃啸称桅
是一种选择。
坝镰补翔奋
引用了您正在使用的所有全局变量和全局函数。
孝箱捆讨
痰降锭骂奸
试试这个...
联海
另一个例子 :
因此,myVariable的值“coco”变为可变coco。 因为全局范围中的所有变量都是Window对象的属性。
埠仙俊
表示法,但Javascript不需要,因为属性键可与数组键互换。
给出123.通常你想构造变量,这就是为什么存在间接,所以你也可以反过来做。
募磷
岭取
然后在我的循环中,我需要创建一个我使用的表单数据
扑北爱
具有与ECMAScript 5中实现的创建功能相同的创建功能。
锑寝粒
臀夯脖锑
运算符可以在它调用的上下文中运行字符串表达式并返回值,也是变量;
理论上可以做到
,但它被定义阻止了。 所以我遇到了这个问题,这里的每个人都在玩,而没有带来真正的解决方案。感谢正在接近的@Axel Heider。 正确的解决方案是
几乎被遗忘的语言操作员。 (我认为最多的是
) 所以保留字运算符
可以在它调用的上下文中动态运行表达式。并返回该表达式的结果。我们可以使用它在函数上下文中动态返回变量的值。 例:
请注意,我总是明确写出
将运行的表达式。 避免代码中不必要的意外。
非常强大 但我相信你已经知道了 顺便说一句,如果它是合法的,我们可以使用
来捕获变量名和值,但是我们不能将计算属性名和属性值简写结合起来,遗憾的是,它是无效的