JavaScriptの関数リテラルが動作しません。
[sourcecode language="JavaScript"] x = -1;
var f = function fact(x){ return x; };
var z = x - f; document.write("z =" + z);
--- 実行結果 z =NaN
[/sourcecode]
本来であれば 0 が表示されるのですが、なぜかNaNとなっています。
ならばということで、それぞれの変数を取得すると…
[sourcecode language="JavaScript"] x = -1;
var f = function fact(x){ return x; };
document.write("x = " + x + " "); document.write("f = " + f + " ");
--- 実行結果 x =-1 f =function fact(x) { return x; } [/sourcecode]
となっています。関数として実行されているわけではなく、文字列として値を取得していることになります。
謎です…。