Objektumorientált JavaScript programozás könnyebben
Bár még a mai napig jónéhányan játéknyelvnek tartják a JavaScriptet, egyre több átgondolt kódszervezésű, a JavaScriptbeli objektumorientáltság furcsaságait félretéve is okosan elkészített kódtár készül. Dean Eadwards látott neki egy átláthatóbb objektumorientált programozást segítő megoldás kidolgozásának. Dean nevéhez fűződik az IE6-ban is több CSS funkciót megvalósító JavaScript kódok kifejlesztése is.
Az A Base Class for JavaScript Inheritance című blog bejegyzésében bemutatott Base.js a következő problémákra igyekszik megoldást nyújtani:
Megoldásának lényege, hogy az Object osztályt kiterjesztve egy Base nevű alaposztályt biztosít, ami
■ Az A Base Class for JavaScript Inheritance című blog bejegyzésében bemutatott Base.js a következő problémákra igyekszik megoldást nyújtani:
- Osztályokat könnyen létre lehessen hozni a
MyClass.prototype
forma használata nélkül
- Felüldefiniált metódusnál egyszerűen lehessen hívni az ősmetódust
- Az osztály konstruktor hívását el kellene kerülni a prototípus kialakításakor
- Statikus (osztály) metódusok és tulajdonságok hozzáadásának egyszerűbbnek kellene lennie
- Mindezeket prototípus láncok felépítésére használt globális függvények nélkül kellene elérni (ellenben azzal, ahogy Harry Fuecks bemutatta januárban)
- Az
Object.prototype
módosítása nélkül kellene ezt megvalósítani
Megoldásának lényege, hogy az Object osztályt kiterjesztve egy Base nevű alaposztályt biztosít, ami
extend
nevű metódusával teszi lehetővé a kiterjesztést, és inherit
metódusával a felülírt metódusok visszahívását. Részletekért és konkrét forráskódért érdemes elolvasni Dean bejegyzését.