Objekty, základní použití, vlatnosti
Co je to objekt?
Je (pro programátora) souhrn vlastností a schopností sloučené do jednoho datového prvku.Objektem může být například strom, jeho vlastnosti můžou být například:
Vlastnost | Hodnota |
typ stromu | lípa |
Barva kmenu | hnědá |
Výška | 4 |
Schopnost | Hodnota |
Kořeny | Živí stom |
Listí | Opadává na podzim |
Květy | Kvetou |
Tímto stromovým příkladem jsme chtěl ukázat, že objekty jsou všechny věci kolem nás. Pokud se ovšem zaměříme na internetový prohlížeč může být takovýmto objektem například: samotné okno prohlížeče, nějaký prvek uvnitř (tlačítko, textové pole), historie atd.
DOM
DOM = Document Object Model = Objektový model dokumentu je sada objektů HTML, XHTML, XML, které jsou hierarchicky uspořádány. DOM je API umožňující zjištění či změnu obsahu, struktury, nebo stylu dokumentu nebo jeho částí. DOM je standard, který je spravován konsorciem W3Ckde lze najít také potřebnou dokumentaci (v angličtině).Jak pracovat s objekty v JavaScriptu?
Objekty jsou dostupné přes tzv. tečkovou notaci: objekt.podobjekt.podobjekt_podobjektu.vlastnost_nebo_metoda(). Například pokudVlastnosti
Pokud chceme zjistit vlastnost objektu stačí vlastnost zavolat např.:
var promenna=objekt.vlastnost;
var barva_pozadi=window.document.bgColor; // vloží do proměnné např: #ffffff při bílém pozadí
Naopak vlastnost nastavíme:
objekt.vlastnost=hodnota;
window.document.bgColor="blue" //nastaví modré pozadí
Metody
Metodu spustíte pomocí:
objekt.metoda;
window.document.write("Text"); //vypíše do okna dokumentu text: "Text"
Možná jste si všimli, že u objektů, které jsme používal v minulých dílech jsem nyní přidal prefix "window.". Jelikož je to objekt, který se používá nejčastěji a komplikoval by psaní je možné ho vynechat.
Vytváříme vlastní objekt
Vlastní objekty jsou dobré pro pohodlnou práci s daty, ubude nám tím spousta práce. Ukážeme si na příkladu, nejprve si vytvoříme funkci: function osoba(jmeno, vek, pohlavi) {
this.jmeno = jmeno
this.vek = vek
this.pohlavi = pohlavi
}
V funkci si všimněte objektu this, který zastupuje vždy konkrétní volaný objekt. Pokud tedy (v dalším kroku budeme dělat) vytvoříme objekt jana, dosadí se vždy za this proměnná jana. Tímto vytvořením funkce jsme nevytvořili ještě objekt, ten vytvoříme:
martin = new osoba("Martin Novak", 33, "M");
jana = new osoba("Jana Novakova", 34, "Z");
Pomocí new jsme vytvořili objekt resp. dva objekty (martin a jana). Pokud by jsme s nimi nyní chtěli pracovat a vytisknout například věk od Jany Novákové a potom třeba i Martina Nováka zadáte:
document.write(jana.vek); //vypise 34
document.write(martin.vek); //vypise 33
Co se stalo? Vytvořením objektu jsme do něj vložili také některé data, ke kterým nyní přistupujeme. Pokud by jsme se třeba spletli nebo chtěli data v objektu nějak poupravit a Janu omladit, stačí zadat:
jana.vek=19;
document.write(jana.vek); //vypise 19
Nyní má jana 19 let jak dokazuje výpis po provedení přiřazení.
Ukážeme si ještě jedno vytvoření objektu se stejnými vlastnostmi, ale bez použití funkce:
jana = {jmeno:"Jana Novakova", vek:34, pohlavi:"Z"}
Takto můžete mít N počet parametrů. Pokud by jste chtěli vytvořit podobjekt přibude jako hodnota další pár složených závorek. Pokud by jste se pak k těmto podhodnotám chtěli dostat (například jméno majitelky auta: objekt jana) budete pracovat s tečkovou notací:
auto = {znacka:"Škoda", typ:"120", rok_vyroby: 1983, majitel: jana}
document.write(auto.majitel.jmeno); //vypise Jana Novakova
V dalším díle budeme objekty pokračovat.
Autor: Martin