Why won't this JavaScript function fire?
<p>I wrote a small hash change object, it will alert the url hash whenever it changes:</p>

<pre><code>(function() {

    function hashChange() {
        this.previousHash;
        this.initialize();
    }

    hashChange.prototype.initialize = function() {
        this.setInterval = window.setInterval(this.checkHashChange, 0);
    }

    hasChange.prototype.uponHashChange = function(hash) {
        alert('I executed!');
        var hashValue = hash.split('#')[1];
        alert(hashValue);
    }

    hashChange.prototype.checkHashChange = function() {
        var hash = window.location.hash;
        if(hash &amp;&amp; hash !== this.previousHash) {
            this.previousHash = hash;
            this.uponHashChange(hash); // &lt;---- doesn't execute
        }
    }

    var hashChange = new hashChange();

})();
</code></pre>

<p>But this:</p>

<pre><code>this.uponHashChange(hash);
</code></pre>

<p>Never gets executed. Why?</p>
