title: Does forEach() bind by reference?
body: <pre><code>var arr = ['Foo'];
  
  arr.forEach(function(item){
    console.log(item);
    item = 'Lorem';
    console.dir(arr[0]);
  
  });
  
  for (var item in arr){
    arr[item] = 'Ipsum';
    console.dir(arr[0]);
  }
  </code></pre>
  
  <p>Like the code above shows, I noticed that changing the value of an item passed to the callback of <code>forEach()</code> does not cause the iterated object to alter. </p>
  
  <p>Using <code>for...in</code> certainly does.</p>
  
  <p><strong>Why is that &amp; how should I alter values in an array?</strong></p>
  
  <p>I find that the topic is covered quite confusing on <a href="https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach" rel="noreferrer">MDN</a></p>