what is this in here (function literal)
<p>I have the structure below that I dont understand the output very well.</p>

<pre><code>var asker = {
    answer: "Its raining...",
    askQuestion: function(answered){
        console.log("Opps..." + this.answer);
        answered();
    }
}

//function literal
var debunker = function(){

    answer = "Its cloudy...";

    debunk = function(){
        console.log(this); 
        console.log("No way! The real answer is:" + this.answer);
    };

    return {
        debunk: debunk
    };

}();

asker.askQuestion(debunker.debunk); 
</code></pre>

<p>It gives me these outputs </p>

<pre><code>Opps...Its raining...
DOMWindow
No way! The real answer is:Its cloudy...
</code></pre>

<p>The <code>debunker.debunk</code> gets the answer that is <code>'Its cloudy'</code>. However <code>this</code> in the debunk function refers the <code>DOMWindow</code> so how <code>this.answer</code> can get the <code>Its cloudy</code> while it refers the <code>window</code> object ?</p>
