Objektov² model

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φ.

Zßpis

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().

Pra╣t∞n² p°φklad

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

Trocha terminologie

Metoda
objekt.metoda() je sama o sob∞ p°φkazem, kter² n∞co d∞lß. Mφvß za sebou zßvorky
Vlastnost
objekt.vlastnost nic ned∞lß, ale mß hodnotu. Hodnota se dß Φφst nebo zapisovat, n∞kterΘ vlastnosti jsou jen pro Φtenφ, n∞kterΘ jen pro zßpis
Podobjekt
objekt.podobjekt m∙╛e mφt dal╣φ metody, vlastnosti a podobjekty. (V literatu°e se podobjekt pova╛uje takΘ za vlastnost.)

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.

Javascript umφ p°istupovat

Nekompatibilita prohlφ╛eΦ∙

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°ehled objekt∙

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. 

window