Autor | Zpráva | ||
---|---|---|---|
varch Profil * |
#1 · Zasláno: 15. 4. 2019, 17:58:17
zdravím, lze v javascriptu vytvářet mělké kopie? nejde mi to (
var promenna = &mujObjekt; )
|
||
Radek9 Profil |
#2 · Zasláno: 15. 4. 2019, 18:23:15
varch:
Nevím, jestli je to úplně přesně to, co chceš, ale jde to pomocí Object.create . V principu to vytvoří nový objekt, který jako prototyp používá tebou zvolený objekt. Pokud ale změníš něco v původním objektu a nepřepíšeš hodnotu v kopii, promítne se to i v ní. Funguje to nějak takhle:
const obj = { a: 10, b: 'Hello', } const copy = Object.create(obj) copy.a // 10 copy.b // Hello obj.a = 20 copy.a // 20 copy.a = 30 obj.a = 40 copy.a // 30 |
||
varch Profil * |
#3 · Zasláno: 16. 4. 2019, 18:52:11
Hm, ne měl sem namysli klasické proměnné
var a = 12; var b = &a; Ale třebas se mi bude hodit i ta create mi most. Díky. Odkazy tedy js nemá jak předpokládám... |
||
Kajman Profil |
#4 · Zasláno: 16. 4. 2019, 19:43:11
Objekty se tak v základu chovají - tedy přiřazením se předává reference.
const mujObjekt = { a: 10, b: 'Hello', } const promenna = mujObjekt promenna.a // 10 promenna.b // Hello mujObjekt.a = 20 promenna.a // 20 promenna.a = 30 mujObjekt.a // 30 |
||
Radek9 Profil |
#5 · Zasláno: 17. 4. 2019, 09:17:12
varch:
Aha, ty myslíš referenci, ne kopii. V tom případě ne, JS to na primitivní typy neumí. Musíš je (jak psal Kajman) zabalit do objektu. |
||
Časová prodleva: 6 let
|
0