нет никакого преимущества для использования new Object();
- тогда как {};
может сделать Ваш код более компактным, и более читаемым.
Для определения пустых объектов они - технически то же. {}
синтаксис короче, более опрятен (меньше выхода Java) и позволяет Вам немедленно заполнять встроенный объект - как так:
var myObject = {
title: 'Frog',
url: '/img/picture.jpg',
width: 300,
height: 200
};
Для массивов, нет так же почти никакого преимущества для когда-либо использования new Array();
[более чем 116] - за одним незначительным исключением:
var emptyArray = new Array(100);
создает 100 объектов, долго выстраивают со всеми слотами, содержащими undefined
- который может быть хорошим/полезным в определенных ситуациях (такой как (new Array(9)).join('Na-Na ') + 'Batman!'
).
new Object();
- это более неуклюже, чем '{}' и выглядит глупым. [];
- кроме тех случаев, когда необходимо быстро создать "пустой" массив с предопределенной длиной. Они имеют тот же конечный результат, но я просто добавил бы, что использование литерального синтаксиса может помочь тому привыкнуть к синтаксису JSON (строковое-ified подмножество синтаксиса объекта литерала JavaScript), таким образом, это могла бы быть хорошая практика для вхождения.
Еще одна вещь: у Вас могли бы быть тонкие ошибки, если Вы забываете использовать new
оператор. Так, использование литералов поможет Вам избежать той проблемы.
В конечном счете, это будет зависеть от ситуации, а также предпочтения.
Синтаксис литерала объектов и литерала массивов {} / [] был представлен в JavaScript 1.2, так не доступен (и произведет синтаксическую ошибку) в версиях Netscape Navigator до 4,0.
Мои пальцы, все еще по умолчанию к высказыванию нового Массива (), но я - очень старый человек. К счастью Netscape 3 не является браузером, который многие люди когда-либо должны рассматривать сегодня...
var objectA = {}
является намного более быстрым и, по моему опыту, более наиболее часто используемым, таким образом, вероятно, лучше принять 'стандарт' и сохранить некоторый ввод.
Я верю {}
, рекомендовался в одном из JavaScript vids на здесь как хорошее соглашение кодирования. new
необходимо для псевдоклассического наследования. var obj = {};
путь помогает напомнить Вам, что это не классический объектно-ориентированный язык, а prototypal один. Таким образом единственное время, в котором Вы действительно требовались бы new
, - при использовании функций конструкторов. Например:
var Mammal = function (name) {
this.name = name;
};
Mammal.prototype.get_name = function () {
return this.name;
}
Mammal.prototype.says = function() {
return this.saying || '';
}
Тогда это используется как так:
var aMammal = new Mammal('Me warm-blooded');
var name = aMammal.get_name();
Другое преимущество для использования {}
, как выступают к new Object
, является Вами, может использовать его, чтобы сделать литералы JSON-объекта-стиля.
Это - по существу то же самое. Используйте то, что Вы находите более удобными.