>>> function () {}
SyntaxError
>>> f = function() {}
f = function() {}
>>> new function() {}
>>> Object
>>> new Function()
function anonymous() {}
>>> Function()
function anonymous() {}
>>> f = (function() { a = 10; return function() {console.log(a);} })();
>>> f()
10
undefined
>>> f = (function() { a = 10; return new Function('console.log(a)'); })();
>>> f()
undefined
したがって、2 つの質問があります。
演算子
Function
がなくてもコンストラクターが新しい関数を返すのはなぜですか?new
Function
関数はコンストラクターではなくクロージャーで作成されますか?