title: What does Array.prototype.join.call do in the background for a string?
body: <pre><code>var a = &quot;foo&quot;;
  var c = Array.prototype.join.call( a, &quot;-&quot; ); // 'f-o-o'
  </code></pre>
  <p>How does the second line of code work? I don't see any conversion of the string to an array and then converting back again, is this happening in the background? I've encountered this kind of code and it's very weird, an array method accepting a string.</p>