Starší komentáře ke článku: Objektově orientované programování v JavaScriptu
Zpět na článek | Úvodní stránka Interval.cz
Datum vložení: 6.11.2003 1:18:21
------------------------------------
//metoda
function bagr_jahoda(a_vstup)
{
this.f_vstup = a_vstup;
this.f_called++;
}
//konstruktor
function bagr()
{
this.f_vstup = null;
this.f_called = 0;
this.prototype.jahoda = bagr_jahoda;
}
------------------------
Datum vložení: 6.11.2003 8:35:27
Omlouvam se za prispevek mimo tema, ale v opere se mi zobrazuji spatne ukazky kodu. Je to operou nebo mnou?
Datum vložení: 6.11.2003 13:05:22
u mne to samy, ale to je uz dyl...
(ted verze 7.21)
Datum vložení: 6.11.2003 13:39:35
Interval zrejme Operu nepodporuje.
Datum vložení: 6.11.2003 13:51:36
Pánové, už mně to nebaví a sliboval jsem, že už se k tomu nebudu dále vyjadřovat, takže pro podrobnosti viz starší diskuze na toto téma. Stručně řečeno obsahuje Opera od verze 7.1 chybu, která způsobuje buď zdvojení zalomení nebo naopak k jeho ignorování. Obojí je hlášeno v buglistu a má být opraveno. Howgh.
Datum vložení: 6.11.2003 15:27:28
Já už jsem tu chybu, o které píšu na Interfóru, taky odeslal do Buglistu - "bug-130687".
Jde vůbec u Opery zjistit, stejně jako u Mozilly (bugzilly), znění chyb, které byly odeslány? Pokud ne (nikde jsem jejich seznam nenašel), pak už tam tyto chyby klidně mohou být 100x, což je trochu "nepraktické"... By mě zajímalo, jak se v těch stovkách e-mailů hrabou...
Datum vložení: 9.11.2003 15:41:30
Nez to vyresi v Opere, muzete si zeditovat (nebo vytvorit) soubor user.css a pridat tyt radky:
BR:before { content: inherit !important; }
BR { display: block !important; height:0 !important; }
Dulezite je, aby Opera byla v tu chvili vypnuta. Pak v Preferences vyberte slozku Page Style a jako My Style Sheet zvolte ten Vas soubor user.css. Nakonec tuknete na tlacitko Configure Modes a ujistete se, ze bude My Style Sheet pouzivat - musi byt zaskrtnut, idealne v Author Mode i User Mode.
That's all, folks :-)
Datum vložení: 9.11.2003 17:09:31
Existuje nějaký slušný CSS hack, který by toto pravidlo dokázal "vnutit" pouze Opeře 7.1 a 7.2? Jak jsem si všiml, v nové verzi 7.22, která nedávno unikla na veřejnost, chyba stále ještě není opravena.
BTW: Nevíte o někom, kdo by se podílel na testování Opery v. 7.3?
Datum vložení: 6.11.2003 10:35:33
Nerekl bych, ze se jedna o simulaci dedicnosti. Mate pravdu, neni sice takova jakou zname napriklad z Javy, ale i prototypova dedicnost nabizi postacujici mechanismus dedeni.
Nove chystana verze ECMAScriptu, uz ma daleko vetsi podporu OOP a nabizi napriklad zapouzdreni objektu, dockame se dokonce i klasickych trid, packagu a jmennych prostoru atd. Vice info na
<a href='http://www.mozilla.org/js/language/es4/' target='_blank'>http://www.mozilla.org/js/language/es4/</a>
Datum vložení: 6.11.2003 13:39:04
Proboha jen to ne! Vzdyt JavaScript je ze sve postaty interparetovany beztypovy jazyk a jako takovy uz je nepouzitelny pro vetsi projekty. Obejekty neobjekty.
Takze to tam bude jen k tomu aby bylo tezsi nepsat interpreter.
Datum vložení: 6.11.2003 23:30:27
Nevim v jake souvislisti zminujete ty projekty. OOP neslouzi jen k velkym projektum jak se mnoho lidi domiva, OOP je o pristupu k programovani a nema nic spolecneho s tim jestli programujete XML-RPC klienta nebo si hrajete s DHTML menu.
Datum vložení: 6.11.2003 23:34:05
jeste by me zajimalo jake prekazky kladou objekty pro jazyk, ktery je interpretovany, muzete mi to vysvetlit?
Datum vložení: 16.11.2003 18:01:16
Ta nadstavba, ktera se chysta (klicova slova class, interface, implements, extends, private, dynamic, ...) vytvori jen jakousi vrstvu nad starym dobrym prototypovym principem ECMA Scriptu. Muzete nadale psat skripty starym zpusobem a i ta striktni specifikace datovych typu je tam jen dobrovolna. Tyhle nastroje proste muzete nebo nemusite pouzivat. Pokud je pouzijete, budete mit vsechno prehlednejsi, interpretr nebo kompilator vam bude davat podrobnejsi hlaseni o chybach a budete si moct troufnout i na velke projekty -- coz je podle me smysl toho vseho. ECMA Script Level 4 si muzete vyzkouset v nove verzi Flashe MX 2004, kde je implementovany pod nazvem ActionScript 2.0.
Datum vložení: 15.1.2004 17:08:30
Isteze pouzitelny aj na velke bussiness projekty je, zalezi co od neho ocakavas a ako s nim vies narabat.
Datum vložení: 7.11.2003 0:09:45
vzdycky, ked uz si myslim, ze co-to o programovani viem, tak michal kusyn tu zavali taky clanok (vid napr. tento + funkcna ukazka), ze si znova radsej ticho a skromne sadnem za PC a tvarim sa, ze som uplna lama. tymto vam chcem podakovat za vase clanky apod. - su skvele. punkt.
peter.
Datum vložení: 7.11.2003 15:27:15
Pan Kusyn je fakt hvezda. Mate muj obdiv. Radu Vasich pristupu a rad uzivam.
Navic - v PHP jsem presel na objekty (class) a nemuzu si to vynachvalit. Zrovna jsem zacal premyslet, jak tak uzasnou vec (objekty) uziv v JS pri vytvareni dynamickeho menu -> a ejhle - je tu Vas clanek!!!
A vsem co jeste neokusili kras OOP - je nejvyssi cas
Radim Köhler
Datum vložení: 7.11.2003 17:25:43
ALE oop bych neprecenoval, rozhodne je treba racionalne zvazovat uziti, a necpat OOP do kazdeho skriptiku :)
Datum vložení: 8.11.2003 16:58:50
No jo no, ale v PHP se da o OOP mluvit az od verze 5.0. Jak psal Michal Kusyn, vseho z mirou. Podpora objketu je jedna vec a jejich realne nasazeni vec druha. Myslim si nebo aspon z toho co vim, tak je patrne, ze sena poradnou implementaci OOP tlaci i v JS viz pripravovana specifikace ECMAScriptu 4.0.
Datum vložení: 9.11.2003 15:48:19
problem je spis v tom, ze spousta lidi objektove programovani prilis nechape, nebo ho prinejmensim nema zazite pod kuzi. Ono to vyzaduje zacit objektove premyslet, a to neni mozne docilit prectenim nekolika clanku nebo knih o OOP, ale vytvorenim mnoha programu a programku.
Pak se muzete na svet divat i uplne jinym pohledem - rict si, proc vlastne vse netvorit rovnou objektove, a OOP se vyhnout jen v situacich, kdy je skutecne nevhodne :-)
Datum vložení: 9.11.2003 23:31:31
Server objects.cz ma motto " Umět programovat znamená umět programovat objektově". Mate pravdu OOP je o zpusobu premysleni. To ze nekdo dostane do ruky zednickou lzici, maltu a cihlu neznamena, ze je zednik. Zednika z nej dela zed, kterou za pomoci tech ingredienci postavi.
Datum vložení: 10.11.2003 19:19:52
Divný motto... Ano, třeba v C++ se bez OOP neobejdete. Ale myslím, že je plno dobrých programátorů (a dobrých aplikací) i např. v PHP, a tam žádné objekty nemáte (teda máte, ale... ehm). Mimoto u malých aplikací a projektů je OOP spíš na škodu. Na každou pidifunkci přece nebudu používat objekt!
To o těch "zednících" je taky divný... Když má někdo postavit zeď a umí jí postavit (dobře a správně), postaví ji. Žádné extra (objektové) přemýšlení na to nepotřebuje. OOP je takové "rozšířené" programování. Ale že by ten, co neumí OOP byl špatný programátor nebo tvořil špatné aplikace? To je teda pěknej nesmysl.
Datum vložení: 10.11.2003 20:29:33
No pokud vim tak v PHP objekty mate i ve verzich 4.x. To ze nemaji spoustu veci neznamena ze je nelze pouzit. Jiste jste patricne omezen v rozletu, na druhou stranu pokud nekdo ignoruje objekty v php 4.x pochybuju ze po vypusteni 5.0 do bezneho uzivani a jeho vyskytu na serverech se vsichni vrhnou do objektu.
I soucasne objekty v PHP maji vyhody pro praci - a v PHP se s nimi da pracovat. Sice hur nez jinde ale lip nez bez nich :)
Datum vložení: 10.11.2003 21:14:40
Nepsal jsem že tam nejsou, ale že jsou "všelijaké", a tak je zrovna v PHP osobně nepoužívám.
Objekty kterým se dá říkat objekty jsou všude, jen ne v PHP, a co se týče PHP 5, je to sice krok dopředu, ale stejně to pořád není ono.
A je BTW zajímavé, že se bez nich dá v PHP obejít - IMHO u malých aplikací (několik stovek či tisíců řádek) to nijak nevadí. Každopádně bych neřešil, jestli "dobrá aplikace = aplikace v OOP", protože se mi to zdá jako: "dobrá grafika = Photoshop". Stejně jako s Photoshopem můžete vytvořit hrůzografiku, stejně tak s OOP přiblblou aplikaci. A naopak. I s Gimpem se dá udělat pěkná grafika a aplikace bez OOP mohou být stejně bezpečné, dynamické a kvalitní. Je to v myšlení, schopnostech a zkušenostech programátora obecně, ne o tom, jestli používá OOP nebo ne.
Howgh
Datum vložení: 11.11.2003 7:27:50
Ano bez objektu se da obejit takrka v jakemkoliv jazyce, ktery o sobe tvrdi, ze je objektovy. To ze date nekomu moznost vytvorit objekt jeste neznamena, ze programuje objektove. Pokud dany jazyk, PHP 5.0 to bude jiste umet, umoznuje realizovat tri zakladni kameny zapouzdrenost, dedicnost a mnohotvarnost pak lze povazovat za objektovy jazyk. Tak ci onak se porad jeste nemuze bavit o objektove orientovanem programovani nybrz pouze o nutnych predpokladech k jeho realizaci.
Asi se neschodneme v terminu dobra aplikace, mate pravdu v tom, ze mezi zakladni premisi patri bezpectnost, osetreni havarijnich stavu, atd. pak jsou ovsem dalsi apsekty, ktere jsou nemene dulezite snadna rozsiritelnost, modifikace, efektivita vyvoje, naklady na vyvoj a udrzbu a v techto apsektech je OOP jedinecne. Ani se nezminuji o znovupouziti komponent, refactoringu kodu a jeho udrzovani atd.
Pokud jste nekdy videl vetsi projekt pak asi vite o cem mluvim, v pripade mensich projektu to plati uplne stejne, je jendo jestli zrovan pisete aplikacni server nebo delate redkacni systemem ci webove rozhrani k poste ci navstevni knihu v PHP.
Pokud OOP moc neznate pak Vam vrele doporucuji online knihu Design Pattern(Navrhove vzory) Ilji Kravala na serveru objects.cz . Zdarma je k diaspozici asi prvnich 30 stranek a jedna se o to nejkvalitnejsi co jsem o objektove orientovanem programvani(at programujete v cemkoliv) cetl.
Datum vložení: 15.1.2004 17:13:15
Premyslat prilis "objektove" skodi, mozno aj dusevne, ale projektom a performance aplikacie urcite ano. Ale najst si cast prebrodit sa design patternami urcite stoji za to a cloveka to moze len obohatit.
Datum vložení: 17.3.2004 11:14:29
Dekuji za podnetny clanek, uz se tesim na dalsi.
Mohl by byt treba o ukladani dat, ktere v ukazce zatim nebylo?
Diky
-ok-
Datum vložení: 6.4.2008 17:38:54
1. Chybí uvozovka otoc_doprava: new Function("alert('Otacim do prava)") má být otoc_doprava: new Function("alert('Otacim do prava')") 2. Místo this.vypisJmeno() = new Function("alert(this.jmeno);"); má být this.vypisJmeno = new Function("alert(this.jmeno);");