Defining a function returnin an object literal
<p>I'm learning javascript from Crockford's book Javascript: The Good Parts. He explains there how to use closure to encapsulate information. E.g. </p>

<pre><code>var myObject = (function () {
    var value = 0;
    return {
        getValue: function () {
            return value;
        }
    };
}());
</code></pre>

<p>If I have understood this correctly, the idea is that we define a function returning an object literal. This function is then invoked to initialize myObject. But what is the point of the outmost brackets?[(f...);]. Isnt the pair () enough to invoke the function we have defined?</p>
