Unexpected output when iterating through an array with a for( ... in ...) loop
<pre><code>&lt;html&gt;
&lt;head&gt;
&lt;script type="text/javascript"&gt;


Array.prototype.getUnique = function () {
    var o = new Object();
    var i, e;
    for (i = 0; e = this[i]; i++) {o[e] = 1};
    var a = new Array();
    for (e in o) {a.push (e)};
    return a;
}

function Perform(){
    var arr = new Array();

    arr[0] = "hello";
    arr[1] = "world";

    for(i in arr){
        console.log(arr[i]);
    }
}

&lt;/script&gt;
&lt;/head&gt;
&lt;body onload="Perform()"&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>The result of above code in console is </p>

<pre><code>hello
world
function()
</code></pre>

<p>From where does the last <code>function()</code> come from?</p>
