为什么这两个语句在JavaScript中相同?
var a = new Array(5);
var a = Array(5);
或者,如果它们不相同,它们有什么不同?基本上,如果我将a
分配给另一个变量并对其进行突变,则每次初始化时数组中的值都会以类似的方式改变。
答案 0 :(得分:-1)
为什么这两个语句在JavaScript中相同?
var a = new Array(5); var a = Array(5);
那只是数组设计的方式。并非所有构造函数都具有此行为,但是Array构造函数的规范使得可以使用new
或不使用它来调用它。
22.1.1数组构造器
[...]
- 在作为函数而不是构造函数调用时,还会创建并初始化一个新的Array对象。因此,函数调用Array(…)等效于具有相同参数的对象创建表达式new Array(…)。