如何仅使用字符串访问常量变量

时间:2019-07-07 20:52:58

标签: javascript scope const

我有以下问题:

const value1 = "some value";
var   value2 = "some value";

console.log(window["value1"]); // undefined
console.log(window["value2"]); // some value

我知道const是块作用域的,这就是我无法通过window对象访问它的原因。我的问题是,有什么方法可以仅使用字符串标识符来访问const变量。

如果我只能访问“ value1”,如何获得实际value1的句柄?甚至有可能吗?

1 个答案:

答案 0 :(得分:0)

看来,像let和const这样的块作用域声明没有添加到全局对象中,这意味着您无法通过window的属性来访问它们。

请参阅有关堆栈溢出的相关问题:https://stackoverflow.com/a/28776236/10965456

eval应该和eval("values1")以及Function构造函数一起工作,尽管我不确定为什么这样做是必要的。如果需要动态访问某些值,请改用数组,对象或映射。