Hi
Vielen Dank für eure Antworten, Tim und Struppi.
Habe auf eure Antworten hin noch tiefer geforscht und meine Verwirrung hat sich damit vergrössert. Ich weiss, das Folgende ist schon ein Grenzfall, aber ich hatte in meinem Script genau dieses Problem und brauchte lange (sehr lange), bis ich den Bug gefunden hatte. Vereinfacht sieht es so aus:
function Foo () {
var n;
this.noini;
this.ini=n;
}
var foo = new Foo();
Beide Properties foo.noini
und foo.ini
sind mit undefined
initialisiert, wobei letzteres seinen Wert von der Variable n bezieht.
Gemäss molily (siehe Link von Struppi) ergeben (typeof foo.ini != 'undefined')
und (typeof foo.noini != 'undefined')
beide false
; soweit kann ich das nachvollziehen.
Aber:
('ini' in foo)
ergibt true
und ('noini' in foo)
ergibt false
.(!)
Testscript liegt hier:http://mnn.ch/diversa/inTest.html
Was jetzt?
Oder steh ich auf dem Schlauch?