title: why `splice.apply(arguments, 0)` fails while `splice.call(arguments, 0)` returns Array
body: <p>I'm trying to turn <code>arguments</code> variable which is accessible inside function into an array. I've tried two ways:</p>
  
  <pre><code>Array.prototype.splice.apply(arguments, 0) //fails
  Array.prototype.splice.call(arguments, 0) //return array
  </code></pre>
  
  <p>Can you please guys elaborate on why the first option fails while the second one succeeds?</p>