Durante il caricamento della pagina sto creando due oggetti Javascript, objDemo1
e objDemo1Backup
in cui quest'ultimo è semplicemente una copia esatta del primo.Sostituire un oggetto javascript con un altro oggetto
ad es.
objDemo1 {
sub_1 = { something: 123, somethingElse: 321 },
sub_2 = { something: 456, somethingElse: 654 }
}
posso modificare i valori in sub_
così come aggiungere/eliminare nuovi sub_
's, ma l'unico oggetto che sto Editing è objDemo1
. vale a dire che non ho mai cambiare objDemo1Backup
Ho un pulsante di reset che se cliccato ripristinerà objDemo1
indietro a quello che era quando la pagina caricata in origine (vale a dire objDemo1 = objDemo1Backup
). Questo è dove sto avendo il problema ..
Come impostare objDemo1
su objDemo1Backup
?
ho provato:
objDemo1 = objDemo1Backup;
e
objDemo1 = null;
var objDemo1 = objDemo1Backup;
... così come le variazioni simili, ma nulla sembra funzionare. Qualche idea?
- Nota: Posso confermare che in corrispondenza del punto di ripristino,
objDemo1Backup
è esattamente lo stesso come lo era quando ho creato eobjDemo1
è cambiato. - Il mio codice sta sicuramente colpendo la funzionalità "reset", dove ho provato il
objDemo1 = objDemo1Backup
... Non riesco a capire la sintassi per sostituire l'oggetto.
Suppongo che ciò che sta accadendo sia che sia "objDemo1" che "objDemo1Backup" puntino allo stesso oggetto, quando ne modifichi uno, entrambi vengono cambiati. Questo potrebbe non sembrare intuitivo, ma è il modo in cui funziona JavaScript. Google ** "javascript clone object" ** per ulteriori dettagli. – Shmiddty
Stai giocando con riferimento all'oggetto, non clonandolo. Dovresti clonare il tuo oggetto invece di assegnarlo usando = – LittleSweetSeas