The Array constructor is the %Array% intrinsic object and the initial value of the Array property of the global object. When called as a constructor it creates and initializes a new exotic Array object. When Array is called as a function rather than as a constructor, it also creates and initializes a new Array object. Thus the function call Array(…) is equivalent to the object creation expression new Array(…) with the same arguments.
根据
EMACScript
标准:调用
Array()
和new Array()
是等同的。使用new的话如果函数没有return会返回一个对象。不使用new如果函数没有return会返回undefined。
使用new之后,过程是这样的,创建一个新对象,将构造函数的this对象赋给新对象,执行代码,在返回新对象。
从你的例子上来说,这几个是没区别的。
第一种是构造函数式,即通过new运算符调用构造函数Function来创建函数
第二种不是实例化,只是调用函数把返回值赋给变量。
详细的可以看下javascript中使用new与不使用实例化对象的区别的介绍,希望对你有帮助