在JavaScript中使用动态变量名称
在PHP中,您可以执行以下令人惊奇/可怕的事情:
$a = 1;$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1
有没有办法用Java做类似的事情?
例如,如果我有一个名称,var name = 'the name of the variable';
可以得到对变量的引用name
吗?
回答:
由于ECMA-/ JavaScript是所有关于Objects
和Contexts
(其也somekind的对象的),每个变量被存储在这样的被称为
(或在功能方面,的情况下, )。
因此,如果您创建这样的变量:
var a = 1, b = 2,
c = 3;
在 (= NO函数上下文)中,您将这些变量隐式写入 (window
在浏览器中= )。
可以使用“点”或“括号”表示法来访问它们:
var name = window.a;
要么
var name = window['a'];
这仅适用于在这种特定情况下的全局对象,因为 中的 是window
对象本身。在函数的上下文中,您没有直接访问
权限。例如:
function foobar() { this.a = 1;
this.b = 2;
var name = window['a']; // === undefined
alert(name);
name = this['a']; // === 1
alert(name);
}
new foobar();
new
创建一个自定义对象(上下文)的新实例。没有new
该功能的范围也将是global
(=
window)。此示例将分别警告undefined
和1
。如果我们替换this.a = 1; this.b = 2
为:
var a = 1, b = 2;
两个警报输出均未定义。在这种情况下,变量a
和b
将存储在foobar
无法访问的激活对象中(我们可以通过调用a
和直接访问它们b
)。
以上是 在JavaScript中使用动态变量名称 的全部内容, 来源链接: utcz.com/qa/427191.html