Alternatív öröklődési modell Prototype függvénykönyvtárral

 

Kommentár

Sam Stephenson nevéhez fűződik a Prototype nevű, webes alkalmazásokhoz jól használható JavaScript függvénytár. Az öröklődést elég puritán módon támogatja, az Object.extend metódusa mindössze átmásolja a második paraméterben megadott objektum összes tulajdonságát az első paraméterben megadott objektumba.
    Object.extend = function(destination, source) {
      for (property in source) {
        destination[property] = source[property];
      }
      return destination;
    }
    
A példakódban az oB.IdentifyMyself() metódus meghívása a szülő objektum IdentifyMyself() metódusát hívja meg. Ez azzal magyarázható, hogy az Object.extend(oB, o1); átírja az oB objektum getStaticProperty() metódusát. Az Object.extend metódus ugyanis nem végez ellenőrzést, hogy nem létezik-e már ilyen nevű tulajdonság (metódus).

A Prototype függvénytár elsődleges célkitűzése az, hogy a programozóknak kevesebbet kelljen gépelni. Erre talán a legjobb példa a $ metódus. Ez a kurta nevű függvény egy objektum referenciával tér vissza egy DOM elemre (Ennél többet is tud. Lásd a web címeket a dokumentációra az oldal alján).

    $('btnSubmit').disabled = false; // ennél rövidebb már nem lehet
    document.getElementById('btnSubmit').disabled = false; // Prototype elött ennyit kellett gépelni
    

A Prototype függvénytárra úgy is tekinthetünk, mint egyfajta JavaScript újítás. A függvénytár a JavaScript objektumainak kiterjesztésével olyan új funkcionalitással bővíti a nyelvet, amelyet sokan már régóta hiányoltak a nyelvből. Mint azt a függvénytár neve is sugallja, a Prototype egy stabil alapot képvisel, amire építeni lehet.

A Prototype-ra építve hozta létre Thomas Fuchs a script.aculo.us JavaScript függvénytárat, ami egy sor nagyon látványos vizuális effektet tartalmaz illetve fogd és vidd technika használatát teszi lehetővé rendkívül egyszerűen.

Linkek: