JavaScript prototype (extend-pitfall)

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod yaroukh 12. 4. 2005 09:23

zdrc

Dedil jste nekdo v JavaScriptu? How to extend co nejelegantneji?

A)
AncestorFc.prototype = new BaseFc();
--
Tohle ma nevyhodu, pokud BaseFc() ocekava nejake parametry: problem nastane v okamzik, kdy s temi vstupnimi hodnotami chce BaseFc() manipulovat.

B)
AncestorFc.prototype = BaseFc.prototype;
--
Vyse zminena nevyhoda odpada. Ale je tu jina: predava se reference na prototype, takze override fce v potomkovi ve skutecnosti zmeni fci uz v zakladni "tride".

Napadaji me dve reseni:
1) osetrit konstruktor vsech zakladnich trid, aby pocital s moznosti chybejicich parametru
2) napsat nejakou fci extend(BaseFc.prototype), ktera pomoci for(field in BaseFc.prototype) vsechny cleny/fce do nove tridy z te puvodni nakopiruje

Oboji je "takovy divny", a treba nekdo zna elegeantnejsi reseni ... ?

bye
my favourite music: sounds4u.net/?fuID=3
yaroukh
Junior
Uživatelský avatar

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků