Struppi: Frage zu JavaScript OOP

Beitrag lesen

Was ist ImageConstructor() eigentlich? Ist das nun eine normale Funktion oder ein Objekt?

Ein normale Funktion ist immer ein Objekt, das ist aber ein Art Decorator wenn ich mich nicht irre.

Sieht nach einer normalen Funktion aus, die in der variable element eine referenz auf das HTML-element speichert, diesem dann die methode "methode" anfügt und die referenz zurrückgibt.

Ja.

Wozu ist dann allerdings das Schlüsselwort new nötig?
var imageObj = new ImageConstructor();

Das ist in der Tat überflüssig.

Diese Möglichkeiten schließen dabei aber aus, dass ich dem HTML-element auch private eigenschaften und methoden gebe, richtig?

Du kannst durchaus private Variabeln deklarieren in der Funktion deklarieren, diese gelten dann nur für das jeweilige Objekt.

z.b.:

function ImageConstructor (id) {  
 var element = document.getElementById(id);  
 var counter = 0;  
 element.onclick = function () {  
  alert(counter);  
  counter++;  
 };  
 return element;  
}

Struppi.