Schorsch: Class.create() OO mit prototype

Beitrag lesen

Salut Mathias

Wow, jetzt hab ich viel gelernt, vielen Dank für deine Mühe!

Diese Defaults werden nirgendwo verfügbar sein, sie sind bloß lokale Variablen im Konstruktor. Das ist dir klar, oder?

Ah ja. Habs mit "this.variable" ins Objekt rein getan.

Class.create() definiert eine Klasse.
Wenn du eine Instanz dieser Klasse erzeugen willst, machst du ganz normal
var SchuhInstanz = new Schuh(obj, opt);

Ach so. Also eine Klasse ist das Gerüst.
Sie muss immer angelegt werden.
Ist das der Fall, kann man Instanzen gründen.
Einzelne Objekte erzeugen, also verschiedene Schuhe gebären.

Jetzt siehts so aus:

var Schuh = Class.create();
Schuh.prototype = {
  initialize: function(element, opt){
    var defaults = {
   eins: "eins",
   groesse:44,
   farbe: "rosa"
 }
 var options = Object.extend(defaults, opt || {});
 this.options=options;
    }
}

Und folgendes gibt mir wie gewünscht
die Ausgabe "49":

opt = {
    groesse: 49
  }
  var SchuhInstanz = new Schuh(obj, opt);
  alert(SchuhInstanz.options.groesse);

Juhee!

Schorsch