javascript - JS 对象和数组的创建使用new和不使用new有什么区别呢?
大家讲道理
大家讲道理 2017-04-11 12:37:26
0
4
748

比如:

var a = Array(); 和 var aa = new Array();

var b = Object(); 和 var bb  = new Object();
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

reply all(4)
小葫芦

根据 EMACScript标准:

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.

调用Array()new Array()是等同的。

左手右手慢动作

使用new的话如果函数没有return会返回一个对象。不使用new如果函数没有return会返回undefined。

黄舟

使用new之后,过程是这样的,创建一个新对象,将构造函数的this对象赋给新对象,执行代码,在返回新对象。
从你的例子上来说,这几个是没区别的。

迷茫

第一种是构造函数式,即通过new运算符调用构造函数Function来创建函数
第二种不是实例化,只是调用函数把返回值赋给变量。
详细的可以看下javascript中使用new与不使用实例化对象的区别的介绍,希望对你有帮助

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template