esiste un modo per eseguire eval() su un ambito specifico (ma NON globale)?Specificare l'ambito per eval() in JavaScript?
per esempio, il seguente codice non funziona (una non è definito sulla seconda istruzione), perché sono il diverso perimetro:
eval(var a = 1);
eval(alert(a));
Se possibile, vorrei creare un ambito al volo . per esempio (la sintassi è sicuramente sbagliato, ma solo per illustrare l'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
}
Qualche idea su come realizzare qualcosa di simile? Grazie!
Nel caso qualcuno ancora interessato, io solo postato una risposta qui http://stackoverflow.com/a/43306962/1758245 –