Selbstausführende Funktionen [duplizieren]

Mögliche Duplikate:
Unterschied zwischen (function () {}) (); und function () {} ();

Ich versuche, einige der Funktionen von JavaScript ein wenig besser zu verstehen. ImThe Definitive JavaScript es heißt, dass selbstausführende Funktionen mit Klammern versehen sein sollten:

var obj = (function() {
    var value = 0;

    return {
        increment: function(inc) {
            value += typeof inc === "number" ? inc : 1;
        },
        getValue: function() {
            return value;
        }
    }
})();

aber inJavaScript - The Good Parts Woher dieses Beispiel stammt, hat es die obige selbstausführende Funktion ohne die runden Klammern, wie folgt:

var obj = function() {
    var value = 0;

    return {
        increment: function(inc) {
            value += typeof inc === "number" ? inc : 1;
        },
        getValue: function() {
            return value;
        }
    }
}();

Beide Beispiele funktionieren für mich, aber ich wollte fragen, ob es Unterschiede in der Funktionalität gibt, die ich beachten sollte. Ich hoffe das ist nicht zu trivial. Ich wollte nur sicher sein.

Danke vielmals.

Bearbeiten:

Wie Rob W darauf hingewiesen hat, gibt es einen anderen Thread zu diesem Thema.Dies ist ein hervorragender Blog zu diesem Thema das wurde vom anderen post verlinkt.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage