Funkcje samowykonawcze [duplikat]

Możliwy duplikat:
Różnica między (function () {}) (); and function () {} ();

Staram się trochę lepiej zrozumieć niektóre funkcje JavaScript. WThe Definitive JavaScript mówi, że funkcje samowykonujące powinny mieć nawiasy okrągłe w taki sposób:

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

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

ale wJavaScript - The Good Parts tam, gdzie pochodzi ten przykład, ma powyższą funkcję samowykonywania bez okrągłych nawiasów, tak jak poniżej:

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

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

Oba te przykłady działają dla mnie, ale chciałem zapytać, czy były jakieś różnice w funkcjonalności, o których powinienem wiedzieć. Mam nadzieję, że to nie jest zbyt trywialne. Chciałem się tylko upewnić.

Wielkie dzięki.

Edytować:

Jak zauważył Rob W, jest jeszcze jeden wątek na ten temat.To doskonały blog dotyczący tego problemu który był powiązany z innym postem.

questionAnswers(3)

yourAnswerToTheQuestion