Remplacer un objet javascript avec un autre objet

Au chargement de la page je suis la création de deux Objets Javascript, objDemo1 et objDemo1Backup où ce dernier est tout simplement une copie exacte de la première.

par exemple

objDemo1 { 
    sub_1 = { something: 123, somethingElse: 321 },
    sub_2 = { something: 456, somethingElse: 654 }
}

Je peux modifier les valeurs dans sub_ ainsi qu'à ajouter /supprimer des sub_mais le seul objet que je suis l'édition est objDemo1. c'est à dire je n'ai jamais changer objDemo1Backup

J'ai un bouton de remise à zéro lorsque l'utilisateur clique dessus réinitialiser objDemo1 à ce qu'il était lorsque la page à l'origine chargé (c'est à dire objDemo1 = objDemo1Backup). C'est là que je vais avoir le problème..

Comment puis-je régler objDemo1 à objDemo1Backup?

J'ai essayé:

objDemo1 = objDemo1Backup;

et

objDemo1 = null;
var objDemo1 = objDemo1Backup;

...ainsi que des variations similaires mais rien ne semble fonctionner.
Des idées?

  • Note: je peux vous confirmer qu'au moment de la réinitialisation, objDemo1Backup est exactement la même qu'elle l'était lorsque je l'ai créé et objDemo1 a changé.
  • Mon code est vraiment frapper le "reset" de la fonctionnalité, où j'ai essayé de la objDemo1 = objDemo1Backup... je n'arrive pas à trouver la syntaxe pour remplacer l'objet.
Je vais supposer que ce qui se passe est que, depuis deux objDemo1 et objDemo1Backup pointent vers le même objet, lorsque vous modifiez un, les deux sont modifiées. Cela peut ne pas sembler logique, mais il est le moyen le javascript fonctionne. Google "javascript cloner un objet" pour plus de détails.
Vous jouez avec la référence d'objet, pas de clonage. Vous devez cloner votre objet au lieu de l'affecter à l'aide de =

OriginalL'auteur Adam Tomat | 2012-12-18