Создайте пустой объект в JavaScript с {} или новый Объект ()?

359
задан Alireza 8 July 2017 в 18:04
поделиться

6 ответов

Объекты

нет никакого преимущества для использования 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!').

Моя рекомендация

  1. Никогда не использует new Object(); - это более неуклюже, чем '{}' и выглядит глупым.
  2. Всегда использование []; - кроме тех случаев, когда необходимо быстро создать "пустой" массив с предопределенной длиной.
447
ответ дан Quentin 23 November 2019 в 00:19
поделиться

Они имеют тот же конечный результат, но я просто добавил бы, что использование литерального синтаксиса может помочь тому привыкнуть к синтаксису JSON (строковое-ified подмножество синтаксиса объекта литерала JavaScript), таким образом, это могла бы быть хорошая практика для вхождения.

Еще одна вещь: у Вас могли бы быть тонкие ошибки, если Вы забываете использовать new оператор. Так, использование литералов поможет Вам избежать той проблемы.

В конечном счете, это будет зависеть от ситуации, а также предпочтения.

12
ответ дан Jason Bunting 23 November 2019 в 00:19
поделиться

Синтаксис литерала объектов и литерала массивов {} / [] был представлен в JavaScript 1.2, так не доступен (и произведет синтаксическую ошибку) в версиях Netscape Navigator до 4,0.

Мои пальцы, все еще по умолчанию к высказыванию нового Массива (), но я - очень старый человек. К счастью Netscape 3 не является браузером, который многие люди когда-либо должны рассматривать сегодня...

8
ответ дан bobince 23 November 2019 в 00:19
поделиться
var objectA = {}

является намного более быстрым и, по моему опыту, более наиболее часто используемым, таким образом, вероятно, лучше принять 'стандарт' и сохранить некоторый ввод.

8
ответ дан Bobby Jack 23 November 2019 в 00:19
поделиться

Я верю {}, рекомендовался в одном из 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-объекта-стиля.

8
ответ дан Thedric Walker 23 November 2019 в 00:19
поделиться

Это - по существу то же самое. Используйте то, что Вы находите более удобными.

2
ответ дан Tomalak 23 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: