 <p>You are missing the <code>.call()</code> when you're trying to make an array copy from the <code>HTMLCollection</code>. Instead of this:</p> <pre><code>var x = document.getElementsByTagName("th"); var plop = Array.prototype.slice(x); </code></pre> <p>You can do this:</p> <pre><code>var x = document.getElementsByTagName("th"); var plop = Array.prototype.slice.call(x); console.log(plop); </code></pre> <hr> <p>Note: you don't need to make an array copy just to iterate over it. You can iterate an HTMLCollection directly:</p> <pre><code>var items = document.getElementsByTagName("th"); for (var i = 0; i &lt; items.length; i++) { console.log(items[i]); } </code></pre>