Danieli, odkaz na mé články o Javascriptu nejsou žádnou reklamou, pouze jsem Vás odkazoval na článek kde je proveden správný teoretický popis, i když to může vypadat namyšleně, já reklamu nepotřebuji, denně mi na blog chodí 150 až 700 návštěvníků. Také mé výtky neberte jako nějaké naparování či vychloubání se, tak to vůbec nemyslím.
Chcete abychom Vám řekli o nedostatcích ve Vašem článku, takže za prvé, píšete: „Funkce, to je prostá definice. Není přiřazena k žádné třídě, k žádnému objektu“,
že funkce jení objektem, je chyba, funkce je objektem, přebírá některé své „vrozené“ vlastnosti z objektu Object,tudíž je přiřezena k objektu Object v Javascriptu existuje dokonce objekt jako Function , z funkce tedy můžeme vytvářet objekty.
Objekty totiž můžeme vytvářet buďto tím, že vytvoříme funkci například takto:
function funkce(){}
a tímto zápisem se obracíme na konstruktor funkce var x=new funkce();
tečkovou syntaxí se pak můžeme obracet na jednotlivé proměnné funkce, objekt také můžeme vytvářet tak, že ho vytvoříme jako asociované pole. Ovšem vytvoření objektu jako asociované pole má svá omezení. Takový objekt můžeme nazývat literálním objektem.
Tudíž tvrdit, že objekt je v Javascriptu asociované pole je špané. Dříve se objekty opravdu vytvářeli jako asociovaná pole, dnes se dají vytvořit i z funkce a je to častější způsob vytvoření. Dále pokud vytvoříte objekt z asociovaného pole tak nemůžete vytvářet novou instanci pomocí slova new.
Dále píšete, nahoře, že funkce není objekt a dole zase že je.
Dále píšete o Closure, ale všude se closure říká uzávěry. Dále se ještě jednou vrátím k objektům. Dále když už hovoříte o objektech bylo by velmi vítané kdybyste řekl, že existují vestavěné objekty, a dále že objekty si můžeme vytvořit vlastní například z funkcí nebo jako asociované pole.
Celý popis funkce máte zmatečný, za prvé z funkce můžeme vytvářet objekt, funkce obsahuje proměnné a metody a můžeme ji nazývat třídou, na třídu se můžeme odkazovat konstruktorem pomocí slůvka new. Dále objekt window je globálním nejvyšším objektem vzhledem k DOM stromu dokumentu, nikoli k samotnému Javascriptu.
Dále uvedené názvosloví je velice špatné, psát jako o špatné funkci je opravdu špatný způsob, měl byste psát o uzávěrách. Dále píšete o modulech, ve skutečnosti jde o prázdný objekt, že kterého nejde vytvářet další instance takto se skutečně dají vytvářet statické objekty.
Opět jste špatně pochopil anonymní funkce. závorky před a za anonymní funkcí se dělají kvůli poli působnosti dané funkce, kvůli ničemu jinému se nedělají.
Dále pokud se nepletu je jQuery totéž co $, a navíc se tyto proměnné dají přepsat na vlastní označení.
Prostě celý článek je nepřehledný, nedůsledný, špatné názvy, špatně jste pochopil OOP v Javascriptu, jsou zde neúplné věci......
Dále, proč bych nemohl deklarovat metodu v konstruktoru, pokud chci tuto metodu ihned zavolat tak ji tam můžu volat, nemusím ji psát jinam. Dále co se týče for in tak to skutečně nepoužívám, je to tam uvedeno pouze jako možný způsob.