Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Třídy, dědičnost a OOP v Javascriptu - I

olin
olin (neregistrovaný) ---.karneval.cz
16. 3. 2010 23:46

Re: se pridam ke kritice

celé vlákno

ad 4) Neboj se. Tvrzení, že funkce či objekt je asociativní pole, vystihuje sice na první pohled podstatu, není to ale vůbec přesné. Asociativní pole je totiž pouze datová reprezentace, zatímco objekt a funkce jsou složitější pojmy. Zůstanu proto jen u objektu, což je v JS množina vlastností (hodnot, prototypu, funkcí, konstruktorů…) – slovy OOP by se dalo říct, že obsahuje atributy a metody.

Říkat, že objekt je asociativní pole, je hodně zjednodušující (i když pro mnohé začátečníky dostačující).

Např. pro datový typ Array – navzdory tomu, že to je Object – to třeba neplatí, protože operace přiřazení (x[4]=5) nepřiřazuje pouze ke klíči 4 hodnotu 5, ale zároveň upravuje vlastnost (atribut) length.

Jiný příklad nalezneme hned u další vlastnosti JS – prototypové dědičnosti. Zde také naráží myšlenka asociativního pole, protože se při nenalezení klíče v dané instanci hledá v objektu schovaném pod klíčem prototype (pak případně i v jeho prototype a tak dále, dokud už další prototype neexistuje).

Na objekty tedy lze s jistou dávkou zjednodušení pohlížet jako na asociativní pole, je to ale velmi chytré (až vyčůrané) asociativní pole :-)

Tenhle článek obsahuje spoustu takových nepřesností. Nu což, někomu to prostě vadí, někomu ne. Já si myslím, že až bude článek kompletní, tak si v něm každý něco najde. Ten, komu vadí pletení pojmů, se může od pojmů odtrhnout a odnést si jádro věci. No a ostatní se na pojmy zas tak nekoukají, takže si odnesou to samé :-)