我有以下问题:
const value1 = "some value";
var value2 = "some value";
console.log(window["value1"]); // undefined
console.log(window["value2"]); // some value
我知道const是块作用域的,这就是我无法通过window对象访问它的原因。我的问题是,有什么方法可以仅使用字符串标识符来访问const变量。
如果我只能访问“ value1”,如何获得实际value1的句柄?甚至有可能吗?
答案 0 :(得分:0)
看来,像let和const这样的块作用域声明没有添加到全局对象中,这意味着您无法通过window的属性来访问它们。
请参阅有关堆栈溢出的相关问题:https://stackoverflow.com/a/28776236/10965456
eval应该和eval("values1")
以及Function构造函数一起工作,尽管我不确定为什么这样做是必要的。如果需要动态访问某些值,请改用数组,对象或映射。