Kommt darauf an, als was du dieses Attribut siehst.
Ist es eine Eigenschaft von lib?
Dann so:
var lib = new function () {
this.wert = 0;
var self = this;
this.func1 = new function () {
this.init = function () {alert(self.wert);};
};
};
lib.wert = 1;
lib.func1.init();
> >
> > Ist es eine Eigenschaft von lib.func1, dann so:
> > ~~~javascript
var lib = new function () {
> > this.func1 = new function () {
> > this.wert = 0;
> > this.init = function () {alert(this.wert);};
> > };
> > };
> > lib.func1.wert = 1;
> > lib.func1.init();
> >
Letzteres wollte ich in diesem Fall. Ich hätte nicht erwartet, dass this.wert geht, weil ich davon ausgegangen wäre, dass this sich in diesem Fall nur lokal auf die init Funktion bezieht.
Aber es handelt sich ja in diesem Fall um keine Instanz der Funktion - richtig?
Kommt darauf an was du mit der Funktion meinst.
this.func1 = new function () {
this.wert = 0;
this.init = function () {alert(this.wert);};
};
this.func1 ist eine Instanz der anonymen Funktion, inerhalb der Funktion ist this die Instanz. Du kannst dort auch lokale Variabeln definieren.
Ein Beispiel das mher OO ist:
this.func1 = new function () {
var wert = 0;
this.init = function () {alert(wert);};
this.setWert = function(w) { wert = w; };
this.getWert = function() { return wert; };
};
Das erste Beispiel wird mir aber sicherlich auch noch nützlich sein.
Nach deinen bisherigen Beispielen zu urteilen, denk ich mir das auch ;-)
Struppi.