Когда Array вызывается как функция, а не как конструктор, он создает и инициализирует новый объект Array. Таким образом, вызов функции Array(…) эквивалентен выражению создания объекта new Array(…) с теми же аргументами.
Ответ 2
Вы должны использовать литерал []. Причины описаны здесь. Использование конструктора Array() может быть неоднозначным, поскольку оно принимает либо length, либо список элементов:
new Array(5) // []
new Array('5') // ['5']
[5] // [5]
['5'] // ['5']
Причина, по которой вы можете использовать Array без оператора new, заключается в том, что внутри он обычно использует трюк с конструкторами:
function Thing(){
if (!(this instanceof Thing)){
return new Thing()
}
// ... define object
}
То есть, если вы вызываете Thing(), он вызовет new Thing() для вас.
Ответ 3
Я считаю, что оба они эквивалентны. Однако, по крайней мере, в JavaScript вы всегда должны использовать буквенный синтаксис:
x = []
Но на основании некоторых тестов в браузерах, которые у меня есть, Array(1, 2, 3) дает тот же результат, что и new Array(1, 2, 3), и тот же с Array(15) и new Array(15). Или просто new Array().
Ответ 4
var arr = new F ([2,17,8, -5]);
как мне сделать устройство, которое влияет на arr на нем arr.metod();