也许我不正确地问这个问题,但我主要想知道创建一个有和没有" new"的数组之间有什么区别?关键词?什么时候适合使用?
var myPix = new Array("Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg");
我知道"新" keyword创建一个新对象。但是,由于我正在创建一个包含数组对象的变量,因此不使用" new"?
仍然创建了数组。最后,我不能轻易使用它吗?
var myPix = ["Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg"];
答案 0 :(得分:2)
在Javascript中,"类"实际上是他们自己的构造函数/初始化函数。 Array
函数就是一个例子。当您调用new Array
时,Javascript首先创建一个未初始化的对象,然后使用该新对象Array()
调用this
。如果您在没有Array()
的情况下运行new
,则会跳过第二步而不创建任何要初始化的对象。
凭借其内置类型函数Array
,Javascript将转身为您创建对象,即使在没有new
的情况下调用也是如此;他们做了正确的事情"因为他们是这样写的。你自己的类型功能不会那么体贴,除非你不遗余力地对它们进行编码。
一般情况下,如果您正在寻找速记符号,则应使用括号形式。
答案 1 :(得分:0)
你可以这样做。
在JavaScript中,一切都是包含数组的对象,实例化的典型方法是使用关键字new。但是,对于包括数组在内的少数情况,可以通过声明这样的数组来避免这种情况:
var arr = [3,45,43,4];
然而,第二种方式(使用[]
)创建数组是首选,因为:
请参阅此处的讨论 - Why is arr = [] faster than arr = new Array?
答案 2 :(得分:-1)
使用新数组(" a"," b"," c")相当于[" a",&#34 ; b"," c"]。后者称为Javascript Object Notation,是更像脚本的ala语言,如python。在任何一种情况下,返回的对象仍然是一个数组。