Ho bisogno di valutare una funzione personalizzata passata dal server come una stringa. Fa tutto parte di un JSON complicato ricevo, ma in ogni caso, mi sembra di essere bisogno di qualcosa sulla falsariga:Come posso utilizzare js eval per restituire un valore?
var customJSfromServer = "return 2+2+2;"
var evalValue = eval(customJSfromServer);
alert(evalValue) ;// should be "6";
Ovviamente questo non funziona come mi aspettavo. In qualsiasi modo posso raggiungere questo?
Grazie per questo. Nel tuo secondo esempio, 'eval ('(function() {' + expression + '}())');' fallisce nel caso in cui ci sia un commento sull'ultima riga dell'espressione, con un errore tipo ** inaspettato fine dell'input **. Per risolvere il problema, aggiungi una nuova riga alla fine: ''\ n}())''. – gregn3
Grazie per la soluzione, ho usato il secondo esempio, con una nuova riga '\ n}())' alla fine e ha funzionato bene. –