JavaScript je jazyk objektov², t°eba╛e nevyu╛φvß v╣echny mo╛nosti OOP. V praxi znamenß "objektovost" vlastn∞ jenom to, ╛e v╣echny vlastnosti a p°φkazy jsou uspo°ßdßny podle n∞jakΘho systΘmu.
Objektov² model je zp∙sob, jak pojmenovat jednotlivΘ prvky okna prohlφ╛eΦe a dokumentu, aby se s nimi dalo pracovat. Studium JavaScriptu je vlastn∞ studium jeho objektovΘho modelu; je t°eba se nauΦit, jak se kterΘ prvky prohlφ╛eΦe zapisujφ.
K adresovßnφ objekt∙ se pou╛φvß teΦkovß
syntaxe objekt∙ (namφsto ╣ipek, jak je b∞╛nΘ v jin²ch jazycφch). V∞t╣ina
objekt∙ mß podobjekty nebo vlastnosti nebo metody; potom se to zapisuje objekt.podobjekt
,
objekt.vlastnost
nebo objekt.metoda()
.
P°edstavte si, ╛e chci zjistit, jakou barvu majφ tkaniΦky AniΦky NovßkovΘ, kterß chodφ do druhΘ A do 3. Z⌐ ve SlanΘm. Objektov∞ by se to (hypoteticky) napsalo takto:
Slan².3Z⌐.2A.NovakovßAniΦka.boty.tkaniΦky.barva
P°φklad:
window.history.back()
je zßpis p°φkazu, kter²
funguje stejn∞ jako tlaΦφtko zp∞t v prohlφ╛eΦi. Objekt window mß
podobjekt history. History mß metodu back(). Je to metoda, proto╛e to n∞co d∞lß
(vracφ historii).
Jin² p°φklad:
window.location.href =
"http://dusan.pc-slany.cz";
naΦte do okna prohlφ╛eΦe mojφ
domovskou strßnku. window je okno prohlφ╛eΦe, mß podobjekt location, kter²
mß vlastnost href (mimo jin²ch). Do tΘto vlastnosti se dß zapisovat a tφm
se mohou naΦφtat strßnky.
Zßkladnφ ·skalφ prßce s JavaScriptem spoΦφvß v tom, ╛e objektovΘ
modely jednotliv²ch prohlφ╛eΦ∙ se li╣φ. N∞kterΘ objekty existujφ jenom
v n∞kter²ch prohlφ╛eΦφch. Nap°φklad objekt window.document.all
existuje jenom v prohlφ╛eΦφch Internet Explorer 4 a vy╣╣φch. Netscape ani
Mozilla tento objekt neznajφ, pokud se s nφm setkajφ ve skriptu, hlßsφ
chybu.
V praxi je tedy t°eba r∙zn²mi podmφnkami testovat verzi prohlφ╛eΦe a na zßklad∞ toho skript v∞tvit.
V dal╣φm v²kladu proberu zßkladnφ objektov² model, kter² pou╛φvajφ v╣echny prohlφ╛eΦe. Pokud uvedu nestandardnφ objekt, tak to zmφnφm.
P∙vodn∞ jsem cht∞l p°ehled objektovΘho modelu psßt podrobn∞ jako referenci. Nakonec jsem od toho ustoupil, proto╛e to nestφhßm. Sna╛φm se soust°edit na d∙le╛itΘ v∞ci.