Späť Domov Ďalej

Domov
Výpisy
Premenné
Dialógové okná
Tlačidlá
.Podmienky a vetvenie
Cyklus
Funkcie
Objekty
Objekt Array
Objekty tvorené užívateľom
Objekt Date
Objekt Math
Formuláre
Objekty formulárov
Ďalšie objekty formulára
Obrázky
Obrázky-2
Stavový riadok
Popis v stavovom riadku
Animovaný text
Hodiny
Skladačka
Linky

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:

  1. Definujte objekt s názvom PC a vlastnosťami: názov, tvar, cena

  2. Vytvorte dve inštancie 

  3. Vypíšte

    1. celú prvú inštanciu do dokumentu

    2. iba názvy oboch inštancií

  4. Pomocou dialógového okna ponúknite jednotlivé produkty a vypíšte sumu zakúpeného tovaru

  5. Jednotlivé inštancie uložte do poľa a vytvorte výpis pomocou tohto poľa

Riešenie


 

späť   pokračovanie


Posledná aktualizácia: 12 máj, 2003

Webmaster: Mgr.Anna Peťovská