C'è qualche motivo per cui questa riga di codice non dovrebbe funzionare?Strana interazione tra la nuova funzione e eval
new Function("eval('function foo(){ alert() }'); foo()")()
Si apre un avviso in Chromium come previsto, ma non riesce in Firefox (foo non è definito). Si tratta di un bug di Firefox o c'è qualcosa di sbagliato nel mio codice?
Questo suona come un modo di modalità rigoroso/non rigoroso: sei sicuro di averli eseguiti entrambi in modalità non rigida? (Comportamento di Chrome) o modalità rigorosa (Firefox)? (Aggiornamento: guardando le specifiche questa potrebbe essere una cosa es5 vs es2015 (es6)) –
@BenjaminGruenbaum Ci ho pensato. Sono abbastanza sicuro di aver eseguito entrambi in modalità non forzata. Tuttavia, la modalità rigorosa non dovrebbe avere alcun effetto, in quanto la nuova funzione non dovrebbe rispecchiare tale aspetto (diversamente da una funzione normale). – user2345215
Mentre è interessante che i browser si comportino in modo diverso, mi chiedo ancora "perché ci importa?" XD –