¿hay alguna forma de ejecutar eval() en un ámbito específico (pero no global)?Especifique el alcance para eval() en JavaScript?
por ejemplo, el siguiente código no funciona (una está definida en la segunda declaración) porque están en distinto alcance:
eval(var a = 1);
eval(alert(a));
Si es posible, me gustaría crear una cobertura sobre la marcha . por ejemplo (la sintaxis es definitivamente mal, pero sólo para ilustrar la idea)
var scope1;
var scope2;
with scope1{
eval(var a = 1); eval(alert(a)); // this will alert 1
}
with scope2{
eval(var a = 1); eval(a++); eval(alert(a)); // this will alert 2
}
with scope1{
eval(a += 2); eval(alert(a)); // this will alert 3 because a is already defined in scope1
}
Alguna idea sobre cómo lograr algo como esto? ¡Gracias!
En caso de que alguien siga interesado, solo publicó una respuesta aquí http://stackoverflow.com/a/43306962/1758245 –