Autor Zpráva
varch
Profil *
zdravím, lze v javascriptu vytvářet mělké kopie? nejde mi to (var promenna = &mujObjekt;)
Radek9
Profil
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 *
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
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
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0