| 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: 7 let
|
|||
0