title: Result of `document.getElementsByClassName` doesn't have array methods like `map` defined, even though it is an array
body: <p>I have the following bit of code to select some divs and add a click handler on them</p>
  
  <pre><code>var tiles = document.getElementsByClassName("tile");
  
  tiles.map(function(tile, i){
      tile.addEventListener("click", function(e){
          console.log("click!");
      });
  });
  </code></pre>
  
  <p>This throws an error because <code>map</code> is not defined, even though tiles is an array.
  If I make an array like this, then map works fine:</p>
  
  <pre><code>var a = [1, 2, 3, 4];
  a.map(/*whatever*/);
  </code></pre>
  
  <p>A workaround is to attach map to tiles like this:</p>
  
  <pre><code>tiles.map = Array.prototype.map;
  </code></pre>
  
  <p>This works fine. 
  My question is why doesn't <code>tiles</code> have map defined on it? Is it not really an array?</p>