Причина, по которой вы не должны использовать new Array
, демонстрируется этим кодом:
var Array = function () {};
var x = new Array(4);
alert(x.length); // undefined...
Какой-то другой код может связываться с переменной Array. Я знаю, что это немного надумано, что кто-нибудь написал бы такой код, но все же ...
Кроме того, как сказал Феликс Кинг, интерфейс немного противоречив и может привести к некоторым очень трудным для отслеживания ошибкам.
Если вам нужен массив с длиной = x, заполненный неопределенным (как это сделает new Array(x)
), вы можете сделать это:
var x = 4;
var myArray = [];
myArray[x - 1] = undefined;
alert(myArray.length); // 4