如何使用字符串引用变量

How can i use a string to reference a variable?

本文关键字:变量 引用 字符串 何使用      更新时间:2023-09-26

我有一个字符串数组:

arr = ["bar","baz"]

我有几个变量:

var bar = 'Hello';
var baz = 'bye';

使用数组,如何输出:

hello
bye

我知道如何循环,但是,如何使用字符串引用变量?

最好的选择是将变量作为属性存储在对象中,并以这种方式引用它们:

var data = {
    bar: "Hello",
    baz: "Bye"
};
arr.forEach((key) => doStuff(data[key]));

如果不能做到这一点,如果您有权访问其他作用域(可能是方法调用期间的this),则可以将变量保留为作用域上的属性。

如果没有任何其他可用的作用域,也没有好的选项,则所有全局变量都附加到self(或window,如果可用)作用域,因此可以使用相同类型的window[key]访问。

如果变量是全局变量,则可以使用window元素的属性索引按名称访问它们:

arr = ["bar","baz"]
var bar = 'Hello';
var baz = 'bye';
arr.forEach(function(item) {
  alert(window[item]);
});