Как я могу получить доступ к постоянной переменной только со строкой - PullRequest
0 голосов
/ 07 июля 2019

У меня есть следующая проблема:

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

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

Я знаю, что const является областью действия блока, и поэтому я не могу получить к ней доступ через объект окна.У меня вопрос, есть ли способ получить доступ к константной переменной, используя только строковый идентификатор.

Если все, к чему у меня есть доступ, это "значение1", как мне получить дескриптор фактического значения1?Это вообще возможно?

1 Ответ

0 голосов
/ 08 июля 2019

Кажется, что объявления области видимости блока, такие как let и const, не добавляются к глобальному объекту, что означает, что вы не можете получить к ним доступ через свойство окна.

См. Этот связанный вопрос по переполнению стека:https://stackoverflow.com/a/28776236/10965456

eval должен работать eval("values1"), а также конструктор Function new Function("return value1")(), хотя я не уверен, почему это необходимо.Если вам нужен динамический доступ к определенным значениям, используйте вместо этого массив, объект или карту.

...