在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是所有关于ObjectsContexts(其也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)。此示例将分别警告undefined1。如果我们替换this.a = 1; this.b = 2为:

var a = 1,

b = 2;

两个警报输出均未定义。在这种情况下,变量ab将存储在foobar无法访问的激活对象中(我们可以通过调用a和直接访问它们b)。

以上是 在JavaScript中使用动态变量名称 的全部内容, 来源链接: utcz.com/qa/427191.html

回到顶部