molily: prototype-Property verliert wert

Beitrag lesen

Hallo,

weil genau dieses (meines) Objekt-erweiterende Prototyping die eigentliche Stärke von  Java-Script ausmacht, imho.

Man könnte es höchstens noch so sehen, dass hier ein »spezielles Image« vorliegt. Dann würde man einen neuen Konstruktor schaffen, der prototypisch Image bzw. HTMLImageElement beerbt. Dieses spezielle Objekt müsste man dann noch ins Dokument einhängen.

function besonderesBild () {  
   var self = this;  
   this.load = function (src) {  
      this.src = "vorschau.png";  
      this.preloadImage = new Image;  
      this.preloadImage.src = src + "?" + (new Date).getTime();  
      this.preloadImage.onload = function () {  
         self.src = this.src;  
      };  
   };  
}  
besonderesBild.prototype = document.createElement("img");  
  
window.onload = function () {  
 var meinBild = new besonderesBild();  
 document.body.appendChild(meinBild);  
 meinBild.load("vollbild.png");  
};

Das Problem ist, dass das in der Theorie hinhaut, in der Praxis aber ebensowenig Cross-Browser umsetzbar ist.

Man kann also alle Images prototypisch erweitern, sodass bestehende img-Elemente im Dokument bereits einen Austauschmechanismus mit Preload haben, oder ein besonderes Image erzeugen, das prototypisch erbt. Ich finde es aber genauso passend, den Bildwechsel als Prozess zu sehen, den man als Objekt darstellen kann. Der besteht dann aus zwei Images, mit denen operiert wird. So lässt sich auch die etwas seltsame Struktur »Image hat Image (hat Image ...)« vermeiden.

Mathias