title: .slice.call vs .push in javascript
body: <p>One of my friends uses <code>[].slice.call()</code> to fill an array with matched elements. </p>
  
  <p>I wonder how this works. I just know the <code>Array.prototype.push</code> to fill an array.</p>
  
  <p>Also I have seen there is a difference in both techniques to fill an array.</p>
  
  <p>So my questions are:</p>
  
  <ul>
  <li>How does <code>Array.prototype.slice</code> help to fill an array?</li>
  <li>What are the roles of <code>Array.prototype.slice</code> and <code>Array.prototype.push</code> to make objects and arrays?</li>
  </ul>
  
  <p><a href="http://jsfiddle.net/YbLWX/" rel="nofollow">Fiddle</a></p>
  
  <pre><code>var arr=[];
  var arr=[].slice.call($('[id^=name]'));
  //arr.push($('[id^=name]'))
  console.log(arr)
  </code></pre>