为什么这样"this.foo = new(function(){..})();" 与"this.foo = function(){...};"

Xer*_*ion 6 javascript

两个函数的定义和赋值有什么不同吗?

this.foo = new (function () {..})();
Run Code Online (Sandbox Code Playgroud)

this.foo = function (){...};
Run Code Online (Sandbox Code Playgroud)

Kie*_*old 8

在第一个例子中,它创建一个函数并执行它,将结果赋给this.foo.在第二个例子中,它创建了函数并将函数本身分配给this.foo.

  • @james不完全正确,`function foo()`将它放在范围的顶部,`this.foo = function()`在那里指定它 (2认同)