Why does console.log inside this self invoking function not get executed?
<p>The following code prints "true". I can understand why ff.f is equal to undefined, but I don't understand why console.log("Hi") is not executed inside ff.f when checking this value. Isn't f immediately executed upon definition?</p>

<pre><code>var ff = function(){
    var f = function(){
        console.log("Hi");
    }();
};

console.log(ff.f === undefined);
</code></pre>

<p>[Edit] I guess a better way to ask this question is "When does this f function inside ff get executed?". I think it's weird that ff.f's value is "undefined" if it doesn't get executed until ff gets executed. Shouldn't it be the function instead?</p>
