Hi molily
var n;
this.ini=n;Das ist tatsächlich eine Initialisierung mit undefined.
this.noini;
Das ist überhaupt keine Initialisierung. Das ist ein Expression Statement mit einem Identifier, der undefined ergibt. Es findet aber keine Wertzuweisung statt. Wenn du einfach
window.bla;
notierst, dann hat bla danach auch keinen Wert (also nichtmal undefined)! Wie kommst du darauf, dass es anders sein sollte?
Darauf bin ich durch meine Angewohnheit gekommen, beim Debuggen Werte ausgeben zu lassen. Sowohl alert(foo.ini), als auch alert(foo.noini) zeigen 'undefined' an. Heisst das, foo.ini *hat* den Wert 'undefined' und foo.noini *ist* undefined? Oder wie?
Im Übrigen, welchen Sinn sollte eine solche Initialisierung mit undefined haben?
Na, wohl keinen, war ja der Bug in meinem Script. Es handelte sich um eine Factory, die eine Art Objekt-Template (Fall foo.noini) hätte bereitstellen sollen, das dann - je nach Client - mit verschiedenen Werten befüllt (Fall foo.ini) werden sollte. Beim Test, ob alle Objekt-Properties gesetzt wurden, bin ich dann gestolpert, weil 'undefined' einmal zu 'true' führte und einmal zu 'false'. Wie gesagt, ich habe den Bug ja gefunden, will aber verstehen, warum das so ist.
Gruss,
Mathias