Hallo,
if(window.focus == true)
alert("focus ist true");
else alert ("focus ist false"); // alle drei landen im else-Zweig
Interessant, damit hätte ich nicht gerechnet. Das muss eine seltsame Sonderregelung sein. Ich dachte, ein Function-Objekt sei == true. Dasselbe hätte ich auch von einem Object-Objekt erwartet. In beiden Fällen ist es nicht der Fall.
Ich habe mir x == true immer so vorgestellt: Der Operator == erfordert Boolesche Werte auf beiden Seiten des Operators, als wird auf beide Werte, sofern sie nicht schon Boolean sind, Boolean() angewendet: x == true wird intern erst einmal in Boolean(x) == true »umgeschrieben«. Und da Boolean(FunctionObjekt) true ergibt, dachte ich, dass FunctionObjekt == true ebenfalls true ergibt. Ich dachte, dasselbe wird bei if (x) angewendet: if (Boolean(x)).
Mathias