Hi,
P.S:nebenbei - kann man innerhalb eines object die methoden aufrufen ohne den namen des objects immer davor schrieben zu müssen also tu() statt ich.tu()?
nein, Objektmethoden kannst Du nur im Kontext des Objectes aufrufen, siehe:
var x = {
foo: 1,
y: function(){
alert (this.foo);
}
}
x.y(); // geht
y(); // functin ist undefined
anders sieht es mit diesem Klassen-Konstruktor und "öffentlichen" Methoden aus:
function foo() {
this.lala = 1;
this.bar = bar;
}
function bar() {
alert(this.lala)
}
var batz = new foo();
batz.bar(); // geht
bar(); // funktion wird ausgeführt, Klassenvariablen sind aber nicht bekannt, da die function nicht im Scope des Objectes aufgerufen wird. Dieses Konstrukt ist daher nicht empfehlenswert.
notierst Du die Methoden als Prototype:
foo.prototype.foobar = function() {
alert(this.lala)
}
var batz = new foo();
batz.foobar(); // geht
foobar(); // funktion ist undefined
Gruesse, Joachim
Am Ende wird alles gut.