title: Directly add [ ] to an object means what?
body: <p>I am reading a book named Eloquent Javascript.</p>
  
  <p>In Chapter 6 I found a syntax I can not understand, <code>[ ]</code> can be directly added to an object.</p>
  
  <p>What does this usage mean?</p>
  
  <pre><code>function UnderlinedCell(inner) {
      this.inner = inner;
  };
  UnderlinedCell.prototype.minWidth = function() {
      return this.inner.minWidth();
  };
  UnderlinedCell.prototype.minHeight = function() {
      return this.inner.minHeight() + 1;
  };
  UnderlinedCell.prototype.draw = function(width, height) {
      return this.inner.draw(width, height - 1)
      .concat([repeat("-", width)]);
  };
  
  function dataTable(data) {
      var keys = Object.keys(data[0]);
      var headers = keys.map(function(name) {
      return new UnderlinedCell(new TextCell(name));
      });
      var body = data.map(function(row) {
          return keys.map(function(name) {
              return new TextCell(String(row[name]));
          });
      });
      return [headers].concat(body);
  }
  </code></pre>