ugrás a tartalomhoz

Objektumorientált JavaScript programozás könnyebben

Hojtsy Gábor · 2006. Már. 29. (Sze), 08.36
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:

  • 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.