Самоисполняющиеся функции [дубликаты]

Possible Duplicate:
Difference between (function(){})(); and function(){}();

Я пытаюсь понять некоторые особенности JavaScript немного лучше. ВThe Definitive JavaScript в нем говорится, что у самозапускающихся функций должны быть квадратные скобки, например:

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

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

но вJavaScript - The Good Parts откуда взят этот пример, у него есть вышеуказанная функция, выполняемая без круглых скобок, например:

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

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

Оба эти примера работают для меня, но я хотел спросить, есть ли различия в функциональности, о которых я должен знать. Я надеюсь, что это не слишком тривиально. Я просто хотел быть уверен.

Большое спасибо.

Edit:

Как указал Роб У., на эту тему есть еще одна тема.Это отличный блог по этой проблеме это было связано с другим постом.

Ответы на вопрос(3)

Ваш ответ на вопрос