Является ли Array (5) эквивалентом var a = []; a.length = 5; в JS?

Я вижу четыре пять вариантов инициализации массива определенной длины в JS (последний - растяжение, я знаю):

var a = []; a.length = 5;

var a = Array(5);

var a = []; a[4] = undefined;

var a = new Array(5);

function makeArrayToLength(length, default){
    var a = [], i = 0;
    for(; i < length; i++){
        a[i] = default;
    }
    return a;
}

Я определенно хочу (и использую) литерал, когда это возможно, но я нахожусь в ситуации, когда определяющим аспектом конкретного массива является его длина, поэтому я склоняюсь к Array (5). Эквивалентен ли первый пример второму с точки зрения конечного результата? Я понимаю, что это не эквивалент в исполнении.

11
задан Andrew 9 December 2010 в 06:23
поделиться