J'ai une variable JSON globale où je stocke des paramètres et chaque fois que je lance la fonction, je veux pouvoir les modifier mais seulement localement à l'intérieur de cette fonction.Pourquoi la fonction renvoie-t-elle la valeur de la variable JSON locale au lieu de la variable globale?
Donc, chaque fois que je lance la fonction, je veux une nouvelle copie de la variable globale à l'intérieur de la variable locale. Le problème est que je copie la variable globale à une variable locale définie dans la fonction, et que j'apporte des changements à la variable locale, mais la prochaine fois que j'exécuterai la fonction, en ayant une copie intacte de la variable globale, Je suis celui où j'ai déjà modifié les choses.
Merci! :)
var test = {"name":"me"};
function bla() {
var t=test;
t.name="you";
t.age=55;
alert(test.name); // Returns "you" that have been set locally instead of "me" that was global value.
}
bla();
En passant par JSON pour cloner un objet, tous les membres non sérialisables (comme les fonctions) seront éliminés. –
Lisez "Puisque vous travaillez avec JSON", puis lisez le titre et le corps de cette question. Tant que l'objet est destiné à JSON, la sérialisation et la désérialisation du clonage sont probablement plus rapides et moins sujettes aux erreurs que l'écriture d'une fonction récursive personnalisée. – MooGoo