Javascript 为什么我们需要“一个”呢;新";创建数组时的关键字?
也许我问得不对,但我主要想知道创建一个带有和不带“new”关键字的数组有什么区别?什么时候使用合适Javascript 为什么我们需要“一个”呢;新";创建数组时的关键字?,javascript,arrays,Javascript,Arrays,也许我问得不对,但我主要想知道创建一个带有和不带“new”关键字的数组有什么区别?什么时候使用合适 var myPix = new Array("Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg"); 我知道“new”关键字会创建一个新对象。但是,既然我正在创建一个保存数组对象的变量,那么数组不是仍然是在不使用“new”的情况下创建的吗 最后,我不能简单地使用这个吗 var myPix = ["Images/pic1.jpg", "I
var myPix = new Array("Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg");
我知道“new”关键字会创建一个新对象。但是,既然我正在创建一个保存数组对象的变量,那么数组不是仍然是在不使用“new”的情况下创建的吗
最后,我不能简单地使用这个吗
var myPix = ["Images/pic1.jpg", "Images/pic2.jpg", "Images/pic3.jpg"];
这两种方法都可以 在JavaScript中,所有内容都是一个对象,包括数组,实例化的典型方式是使用关键字new。但是,对于包括数组在内的少数情况,可以通过如下方式声明数组来避免这种情况:
var arr = [3,45,43,4];
但是,创建阵列的第二种方法(使用[]
)是首选方法,因为:
Array
函数就是一个例子。当您调用new Array
时,Javascript首先创建一个未初始化的对象,然后调用Array()
,将该新对象作为this
。如果运行Array()
通过其内置类型函数,如Array
,Javascript将为您创建对象,即使在没有new
的情况下调用该对象;他们“做正确的事”,因为他们是这样写的。您自己的类型函数不会如此周到,除非您特意对它们进行编码
一般来说,如果你在寻找简写符号,你应该只使用括号形式。使用新数组(“a”、“b”、“c”)相当于[“a”、“b”、“c”]。后者称为Javascript对象表示法,更像是python等ala语言的脚本。无论哪种情况,返回的对象仍然是一个数组。“最后,我不能同样轻松地使用它吗?”-是的,你应该这样做。是的,事实上,我建议那些征求我意见的人(几乎)忘记数组构造函数这一概念。使用[]
表示法可以减少键入。“最后,我不能同样轻松地使用它吗?”YupCreating'new Array()'只是在codingnew中进行编码的classc形式。在本机基元构造函数(字符串、数字、对象、RegExp等)上,new是可选的。除了Date(),这个东西很奇怪……这是一个数组文字;它不是JavaScript对象表示法(JSON),它不应该是var arr=[3,45,43,4]代码>