Hallo Leute,
Gegeben:
1. etliche Objekte, die Koordinaten repräsentieren und ihren Inhalt. Diese bewegen sich nicht
2. einige Objekte, die sich bewegen, platzen oder sonst was.
Nuja, Gruppe 1 wurde implementiert durch die Klasse sprite,
Gruppe 2 bekam zusätzlich eine "arttypische" Erweiterung" namens dagobert.
Die Gruppen wurden im hau-ruck-Verfahren mit Werten bestückt.
Problem:
Wenn man dabei wie in Wikipedia vorgegeben vergeht, ist es Essig mit der Sprite-Basis bei der Gruppe 2, d.h. alle Eigenschaften und Methoden der Klasse sprite sind im Objekt dago "undefined":
Code:
var obj=new Array(); for (i=0; i<maxobj; i++) obj[i]=new sprite(i);
// die Sache mit der Vererbung: ----------------------------
dagobert.prototype = sprite; // Basistyp
obj[0]=new dagobert();
// ---------------------------------------------------------
dago=obj[0]; // einfache Pointerübergabe
Diese hingegen arbeitet zumindest im Mozilla korrekt, sie unterscheidet sich nur in einem Wörtchen:
Code:
var obj=new Array(); for (i=0; i<maxobj; i++) obj[i]=new sprite(i);
// die Sache mit der Vererbung: ----------------------------
dagobert.prototype = new sprite; // Basistyp - hier steht das Zauberwort
obj[0]=new dagobert();
// ---------------------------------------------------------
dago=obj[0]; // einfache Pointerübergabe
Nun will ich nicht gerade wegen eines Wörtchens in dem Artikel herumwurschteln (bin kein Autor), aber es wäre nett, wenn das korrigiert werden könnte. Über Vererbung findet man sonst nur so Wischi-Waschi, bei dem man nicht weiss, warum es jetzt funktioniert hat oder nicht. ![Blinzeln](images/smilies/wink.gif)
Wäre auch nett, wenn dabei steht, warum es funktioniert.
so long,
BlueJay
Lesezeichen