title: forEach() vs Array.prototype.forEach.call()
body: <p>I was just goin through the Electron API Demo code samples when suddenly a wild expression - which is completely foreign to me - appeared:</p>
  
  <pre><code>const links = document.querySelectorAll('a[href]');
  
  Array.prototype.forEach.call(links, function (link) {
      // WWIII here
  })
  </code></pre>
  
  <p>I definitely understand what this piece of code is doing but I am used to a syntax like this:</p>
  
  <pre><code>links.forEach(function (links) {});
  </code></pre>
  
  <p>So what exactly is the difference between those two? I have already read various StackOverflow threads about this topic but they are either ambiguous or don't answer the question at all. Some said it had something todo with array-like collections not being iteratable by .forEach() as opposed to Array.prototype.forEach.call(). Is that the only advantage of the overly tedious and long version?</p>
  
  <p>Thanks in advance!</p>