title: Creating range in JavaScript - strange syntax
body: <p>I've run into the following code in the es-discuss mailing list:</p>
  
  <pre><code>Array.apply(null, { length: 5 }).map(Number.call, Number);
  </code></pre>
  
  <p>This produces</p>
  
  <pre><code>[0, 1, 2, 3, 4]
  </code></pre>
  
  <p>Why is this the result of the code? What's happening here?</p>