搜尋

首頁  >  問答  >  主體

javascript - JS 对象和数组的创建使用new和不使用new有什么区别呢?

比如:

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

var b = Object(); 和 var bb  = new Object();
大家讲道理大家讲道理2815 天前765

全部回覆(4)我來回復

  • 高洛峰

    高洛峰2017-04-11 12:39:26

    根据 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()是等同的。

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-11 12:39:26

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

    回覆
    0
  • 黄舟

    黄舟2017-04-11 12:39:26

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

    回覆
    0
  • 迷茫

    迷茫2017-04-11 12:39:26

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

    回覆
    0
  • 取消回覆