Sto lavorando con alcuni oggetti che contengono un numero di dati da visualizzare e manipolare dal browser e voglio salvarlo nella memoria locale. Al fine di salvare gli oggetti che ho usato JSON.stringify() in modo di testo tutto diventerà, e funziona benesalvare una funzione nella dimensione locale
{
"bindingRef": [],
"primo": {
"name": "primo",
"modifiable": true,
"binded": false,
"isInteger": false,
"label": "Numero di Primi"
},
"secondo": {
"name": "secondo",
"modifiable": true,
"binded": false,
"isInteger": false,
"label": "Numero di Secondi"
}
}
Ora sto cercando di salvare anche una funzione convertendolo in una stringa e poi saveing esso
JSON.stringify(myFunction.toString());
ma l'uscita è questo
"savedFunction": "function() {\n\t\t\t\tvar tot = menu.primo.get() * 6 + menu.secondo.get() * 8 + menu.dolce.get() * 4;\n\t\t\t\tif (menu.sconto.get()) {\n\t\t\t\t\treturn tot * 0.90;\n\t\t\t\t} else {\n\t\t\t\t\treturn tot;\n\t\t\t\t}\n\t\t\t}"
e 'il modo corretto per salvare una funzione in memoria locale o c'è un modo migliore per fare questo? Se questo è il modo corretto, c'è un modo per rimuovere semplicemente qualsiasi carattere di tabulazione/indentazione o dovrei manipolare la stringa, ad esempio usando una qualche funzione regexp?
Si desidera salvare l'oggetto stringificato o la firma della funzione? Quale risultato ti aspetti? – Sarfraz
Perché vuoi salvare una funzione? Secondo me non esiste un modo "corretto" per farlo, perché non ha proprio senso farlo. Supponendo che si desideri salvare la versione '.toString()' della funzione, perché si desidera rimuovere le schede (cosa che si potrebbe fare con '.replace()')? – nnnnnn