Create an empty object in JavaScript with {} or new Object()?

Objects

There is no benefit to using new Object(); – whereas {}; can make your code more compact, and more readable.

For defining empty objects they’re technically the same. The {} syntax is shorter, neater (less Java-ish), and allows you to instantly populate the object inline – like so:

var myObject = {
        title:  'Frog',
        url:    '/img/picture.jpg',
        width:  300,
        height: 200
      };

Arrays

For arrays, there’s similarly almost no benefit to ever using new Array(); over []; – with one minor exception:

var emptyArray = new Array(100);

creates a 100 item long array with all slots containing undefined – which may be nice/useful in certain situations (such as (new Array(9)).join('Na-Na ') + 'Batman!').

My recommendation

  1. Never use new Object(); – it’s clunkier than {}; and looks silly.
  2. Always use []; – except when you need to quickly create an “empty” array with a predefined length.

Leave a Comment