öröklődés object literallal
Sziasztok!
Object literal formában (kb JSON) kapom meg a szülőobjektumokat (vagy prototípusokat, osztályt, ahogy tetszik) és a gyerkőcöket is, amelyekben nem minden tulajdonság van felsorolva -- több szintet. pl:Nemnagyon találtam erre frappáns megoldást, hogyan szokás ilyesmit csinálni?
Köszönöm!
■ Object literal formában (kb JSON) kapom meg a szülőobjektumokat (vagy prototípusokat, osztályt, ahogy tetszik) és a gyerkőcöket is, amelyekben nem minden tulajdonság van felsorolva -- több szintet. pl:
noveny={eheto:true} // legmagasabb szint
fenyo={parent:noveny,eheto:false,joekaracsonyfanak:true} //2.szint
borovi={parent:fenyo,joekaracsonyfanak:true} // 3. szint
luc={parent:fenyo}
gyumolcs={parent:noveny,forma:"kerek", iz:"finom"}; //2.szint
alma={parent:gyumolcs} // 3. szint
banan={parent:gyumolcs,forma:"hosszúkás"}
citrom={parent:gyumolcs, iz:"savanyú"}
// itt kéne csinálni valamit
alert(alma.eheto); // legyen true
alert(luc.eheto); //legyen false
// stb...
//bónusz:
noveny.eheto=false;
alert(alma.eheto); // legyen false
Köszönöm!
gyerek.extend(szülő)
Köszönöm
A prototype alapú öröklődést próbáltam ráhekkelni az object literalra, de nem ment elsőre; ezek szerint nem is lehet?
Még gondolkodom a dolgon... Csak a legmodernebb böngészők alatt kell, hogy működőképes legyen (IE8, FF3.5, esetleg a legújabb Chrome); a Firefoxnak van mindenféle cseles metódusa/tulajdonsága, amikkel lehet variálni, de bele sem kezdek, ha IE8 alatt úgyse menne. (Még utána kéne néznem az IE "rejtett" képességeinek előbb)
Miért?
Esetleg még lehet írni get/set függvényeket, amik ha nem találják az adott tulajdonságot, akkor továbblépnek a szülőre.
Prototype alapú öröklődés osztályoknál van, a literal viszont csak Object osztályhoz tartozó példányokat ad.
Nem tudom miért :-)
Próbáltam valahogy az Objectből Functiont faragni vagy egyéb egyszerű módon megértetni a böngészővel hogy mit akarok, de nem ment. Ahogy utánanéztem, másnak sem :-(
Olyat találtam, amiben kreáltak egy konstruktorfüggvényt és a literált "átkonvertálták" this-ekké. Hát ha más nincs... De azért ez sem az igazi.
Pl:
classier json
Próbálgatom, próbálgatom.
"Esetleg még lehet írni get/set függvényeket..."
Én is gondoltam ilyenre is, de ezt nem csak a mozilla alapú böngészők tudják? (Márminthogy bizonyos tulajdonságok lekéréséhez get/set függvényt lehet rendelni. Mert persze minden tulajdonságot nem szeretnék eleve úgy lekérni, hogy objektum.get("x") )
Köszi!