var n;
this.noini;
Vielleicht erkläre ich nochmal diesen Unterschied.
Das erste ist ein Variable Statement: Da kann man einfach var n; ohne Wertzuweisung schreiben und die Variable n wird dann deklariert, aber nicht mit einem Wert gefüllt. Sowas geht aber nur mit dem Variable Statement!
Das zweite ist wie gesagt ein Expression Statement. Also eine Anweisung, die bloß aus einem (zusammengesetzten) Ausdruck besteht. Und dieser Ausdruck besteht bloß aus einem Keyword (this), einem "Property Accessor"-Operator (.) und einem Identifier (noini). Dieser Ausdruck wird aufgelöst: Es wird also die Eigenschaft noini von this geholt. Es gibt keine solche, daher ist das Ergebnis des gesamten Ausdrucks undefined. Mit diesem Ergebnis wird nichts gemacht. Wie gesagt gibt es nur eine "Dereferenzierung", keine Wertzuweisung. Dazu müsstest du schon this.noini = undefined schreiben - ich wüsste aber nicht, welchen Sinn das hätte.
Mathias