Podczas ładowania strony Tworzę dwa obiekty JavaScript, objDemo1
i objDemo1Backup
, gdzie ten drugi jest po prostu dokładną kopią pierwszego.Zamień obiekt o jednym javascript na inny obiekt
np.
objDemo1 {
sub_1 = { something: 123, somethingElse: 321 },
sub_2 = { something: 456, somethingElse: 654 }
}
mogę zmodyfikować wartości w sub_
a także dodawać/usuwać nowych sub_
„s ale jedynym obiektem jestem edycji jest objDemo1
. to znaczy, że nigdy się nie zmieniają objDemo1Backup
Mam przycisk reset, który po kliknięciu zostanie zresetowany objDemo1
z powrotem do tego, co było, gdy strona pierwotnie załadowane (tj objDemo1 = objDemo1Backup
). Tutaj mam problem ..
Jak ustawić objDemo1
na objDemo1Backup
?
Próbowałem:
objDemo1 = objDemo1Backup;
i
objDemo1 = null;
var objDemo1 = objDemo1Backup;
... a także podobne zmiany, ale nic nie wydaje się działać. Jakieś pomysły?
- Uwaga: Mogę potwierdzić, że w momencie resetowania,
objDemo1Backup
jest dokładnie taka sama, jak to było, kiedy go stworzył iobjDemo1
uległ zmianie. - Mój kod jest zdecydowanie w funkcji "reset", gdzie próbowałem
objDemo1 = objDemo1Backup
... Po prostu nie mogę wymyślić składni, aby zastąpić obiekt.
Mam zamiar założyć, że to, co się dzieje, to to, że zarówno "objDemo1", jak i "objDemo1Backup" wskazują na ten sam obiekt, kiedy je zmienisz, oba zostaną zmienione. To może nie wydawać się intuicyjne, ale tak działa javascript. Google ** "obiekt klonu javascript" **, aby uzyskać więcej informacji. – Shmiddty
Grasz z odwołaniem do obiektu, a nie klonowaniem. Powinieneś klonować swój obiekt zamiast przypisywać go używając = – LittleSweetSeas