Autor Zpráva
Suta
Profil
Mám otázku ohledně odkazů na vytvořené objekty. Nejlépe to snad vysvětlím na praktickém příkladu.

Dejme tomu že budu mít situaci, kdy vytvářím nové okna zobrazující se jako absolutně pozicované na stránce, vytvářet je budu jako instance třídy. Jelikož okna můžu posouvat a mohou se tedy překrývat, potřebuji, aby vždy to aktuální (to, s nímž budu právě pracovat) bylo vždy nahoře a mělo z-index o 1 vyšší než ostatní. Budu tedy potřebovat další proměnou, do níž budu ukládat aktuální okno. "Funkční" řešení je níže.

//inicializuji globalni promennou, do niz bych chtel ukladat odkaz na aktualni okno
var aktualniOknoZIndex;
//kazde okno bude dostupne pres vnitrni promennou element, pri kliknuti na okno spustim udalost onclick
this.element.onclick = this.nastavZIndex;
//funkce overi, zda-li nepracujeme se stejnym oknem,
//pote puvodnimu oknu nastavi puvodni z-index a novemu oknu po ulozeni do globalni promenne nastavi z-index o 1 vyssi
NewWindow.prototype.nastavZIndex = function() {
    if(aktualniOknoZIndex==this) return;
    if(aktualniOknoZIndex) aktualniOknoZIndex.style.zIndex = 1000;
    aktualniOknoZIndex = this; //zde zkratka nevim, jak jinak ulozit "odkaz" na aktualni objekt
    aktualniOknoZIndex.style.zIndex = 1001;
}


Otázka však zní, jak zabránit neustálému kopírování celého objektu do globální proměnné aktualniOknoZIndex, když v podstatě potřebuji ukládat pouze odkaz na objekt?
Aichi
Profil
Javascript objekty nekopíruje, ale používá reference jak na objekty tak na pole. Váš kód je v pořádku
Suta
Profil
Aichi
Nevěděl jsem, děkuji.

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