8.2. Objekty vytvorené užívateľom Objekty môže vytvárať aj užívateľ. Treba vytvoriť tzv. inštanciu objektu jej konštruktorom v pamäti počítača. Vo väčšine prípadov je konštruktor uvedený rezervovaným slovom new. Príklad: objekt: žiak má prvky (vlastnosti) - meno, priezvisko a vek Inštanciu objektov nám vytvorí konštruktor, ktorý definujeme ako funkciu, ktorá priradí jednotlivým zložkám objektu príslušné hodnoty function ziak(meno, priezvisko, vek) { this.meno = meno; this.priezvisko = priezvisko; this.vek = vek; }
Keď už je zostavený konštruktor pre náš objekt, môžeme vytvoriť inštanciu objektu napríklad: ziak1 = new ziak("Janko","Hraško","15");
Výpis tejto inštancie možno vyvolať document.write(ziak1.meno+" "+ziak1.priezvisko+" má "+ziak1.vek+" rokov");Na výpis jednotlivých hodnôt objektu možno použiť cyklus typu for ... in for (i in ziak1) { document.write(i+" : "); document.write(ziak1[i]+"<br> "); } Miesto neustáleho vyvolávania objektu napr. document.write možno použiť with napríklad:with (document){ write(ziak1.meno+"<br>"); write(ziak1.priezvisko+"<br>"); write(ziak1.vek+"<br>"); } Pokiaľ vytvoríme ďalšie inštancie, s ktorými budeme chcieť ďalej pracovať - napríklad výpis, treba doplniť metódy objektu o túto činnosť. V našom príklade pridáme ďalšiu inštanciu: ziak2 = new ziak("Jožko","Mrkvička", "16"); Pridáme metódu vypis this.vypis = vypis; V tomto prípade nepoužijeme za vypis zátvorky ako pri vyvolávaní funkcie. Ďalej doplníme funkciu vypis() function vypis(){ with(document) { write (this.meno+" "+this.priezvisko+" má "+this.vek+" rokov <br>"); } Výpis jednotlivých inštancií zabezpečíme ziak1.vypis(); ziak2.vypis(); Celý program: <html> <head> <script language=JavaScript> function ziak(meno, priezvisko, vek) { this.meno = meno; this.priezvisko = priezvisko; this.vek = vek; this.vypis = vypis; } function vypis(){ with(document) { write (this.meno+" "+this.priezvisko+" má "+this.vek+" rokov <br>"); } } ziak1 = new ziak("Janko","hraško","15"); ziak2 = new ziak("Jožko","Mrkvička", "16"); ziak1.vypis(); ziak2.vypis(); </script> </body> </html>
Úlohy:
|
Posledná aktualizácia: 12 máj, 2003 Webmaster: Mgr.Anna Peťovská |