molily: Grundlagen fehlen

Beitrag lesen

function bild( name ) {
}
<img id='pic1' src='img1.jpg'>
bild1 = new bild( 'pic1' );

Ist das Objekt bild1 nun eine Kopie oder ein Pointer auf das Bild?

Weder noch. Einfach ein Objekt.

Mmh, wie kann das sein?

Wie kommst du darauf, dass die Objektinstanz bild1 identisch ist mit einem img-Elementobjekt?

Nöö, keiner der Browser zeigt das neue Bild. Also das bild1 Objekt scheint überhaupt keine Verbindung zum Bild zu haben.

Wie stelle ich die her?

Warum verwendest du überhaupt einen Konstruktor und erzeugst damit Instanzen?

Wenn du auf ein Bild zugreifen willst, tu es über document.getElementById. Dann bekommst du das img-Elementobjekt und kannst das tun, was du anscheinend vorhast.

Du kannst am Elementobjekt auch andere Daten speichern (farbig_src, sw_src usw.).
Welchen Vorteil erhoffst du dir damit, das Bild nochmal in einem eigenen Objekt zu kapseln?

Das ginge so:

function MyImage (id) {  
   this.imgElement = document.getElementById(id);  
   this.setSrc = function (newSrc) {  
      this.imgElement.src = newSrc;  
   };  
   /* usw. */  
}  
var bild1 = new MyImage("idDesBildes");  
bild.setSrc("bla.jpg");

Das img-Elementobjekt wird einfach als Eigenschaft der Instanz gespeichert und die Methoden können entsprechend darauf zugreifen.

Aber wozu willst du das tun?

Mathias