Как использовать Dynami c строку в Eval - PullRequest
0 голосов
/ 03 марта 2020

let value = 'italic';
let varname = "fontSizeTitle";
eval(varname + "=" + value);

console.log(fontSizeTitle)

У меня есть большой проект, в котором я использую eval() для присвоения динамических c переменных динамическим c строкам. Проблема здесь в том, что он выдает ошибку, говорящую italic is not defined, но когда, если я хочу использовать значение в качестве строки, но снова являюсь динамическим c? как мне сказать eval(), что я хочу, чтобы value был динамическим c. Извините за то, что не опубликовал код моего проекта, но здесь также указан точный сценарий.

1 Ответ

3 голосов
/ 03 марта 2020

Является ли italic строковым литералом в отличие от имени переменной? Если это так, вы должны заключить его в кавычки, чтобы установить его.

Ваш текущий оператор eval делает это:

fontSizeTitle = italic

Возможно, так и должно быть:

fontSizeTitle = 'italic'

Следующий фрагмент кода покажет эту работу:

let value = 'italic';
let varname = "fontSizeTitle";
let statement = varname + "='" + value + "'";
console.log(statement);
eval(statement );

console.log(fontSizeTitle)

Я добавил сам оператор в журнал консоли, чтобы вы могли видеть, что на самом деле выполняется.

...