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.
Object.extendmetó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 azoB.IdentifyMyself()metódus meghívása a szülő objektumIdentifyMyself()metódusát hívja meg. Ez azzal magyarázható, hogy azObject.extend(oB, o1);átírja azoBobjektumgetStaticProperty()metódusát. AzObject.extendmetó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épelniA 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: