在 JavaScript 中使用动态变量名称
在 PHP 中,可以动态操作变量名称。例如,给定以下 PHP 代码:
$a = 1; $b = 2; $c = 3; $name = 'a'; echo $$name; // prints 1
是否有等效的方法可以在 JavaScript 中实现此功能?
JavaScript 解决方案
虽然 JavaScript 不像 PHP 那样支持动态变量名称,但它确实提供了一种使用对象和属性点或括号动态访问变量的机制
与其他编程语言一样,JavaScript 中的每个变量都存储在一个称为变量对象的对象中,该对象是当前作用域(全局或局部)的一部分。
如果我们有以下全局变量:
var a = 1; var b = 2; var c = 3;
我们可以通过在 window 对象上使用“点”或“括号”符号来动态访问它们,window 对象是browsers:
var name = "a"; var value = window[name]; // returns 1 // or value = window['a']; // returns 1
需要注意的是,这种方法仅适用于全局对象。在函数上下文中,变量存储在激活对象的变量对象中,无法直接访问。
例如:
function foobar() { this.a = 1; this.b = 2; var name = "a"; console.log(window['a']); // undefined console.log(this['a']); // 1 } new foobar();
以上是如何在 JavaScript 中使用动态变量名称?的详细内容。更多信息请关注PHP中文网其他相关文章!