title: apply(): what do square brackets mean with a function in-between?
body: <p>I've <a href="https://javascriptweblog.wordpress.com/2010/12/22/delegation-vs-inheritance-in-javascript/" rel="nofollow noreferrer">found</a> some piece of code, that seems to be working, but I don't understand one of its aspects.</p>
  
  <pre><code>&gt; [].forEach.apply('javascript', [function(char) {
  ... console.log(`give me… ${char.toUpperCase()}`);
  ... }]);
  give me a… J
  give me a… A
  give me a… V
  give me a… A
  give me a… S
  give me a… C
  give me a… R
  give me a… I
  give me a… P
  give me a… T
  </code></pre>
  
  <p>Why do we need the second set of these square brackets here, what do they mean? I've never seen a function to put it there. Thanks.</p>