Я сделал JSFiddle для моей проблемы: (также ниже) https://jsfiddle.net/oymrrL81/Не позволяйте Eval доступ к переменным в функции
var code = ["alert('first');n=1;", "alert('second');", "alert('third');IWantThisVariableChanged = true;", "alert('fourth');"];
var IWantThisVariableChanged = false;
function doStuff(){
for(var n = 0; n != 4;n++){
eval(code[n]);
}
}
doStuff();
alert("Variable changed? " + IWantThisVariableChanged);
В основном я хотел бы код оцененного внутри функции, чтобы только быть в состоянии получить доступ к переменным вне функции, в которой находится eval. Это связано с тем, что она меняет мою переменную, которую я использую для моего цикла for, и разрушает цикл. И, пожалуйста, не рекомендую ли я изменить имя переменного в моем цикле :(, мне нужно решение любого переменного имени.
эз, никогда, НИКОГДА, не используйте Eval. – user2267175
Почему вы пытаетесь это сделать? Если вы не хотите, чтобы локальный 'n' был изменен, какой' n' ** do ** вы хотите изменить? –