Почему функция в круглых скобках? [Дубликат]

На этот вопрос уже есть ответ здесь:

Почему эта функция заключена в круглые или круглые скобки? [Дубликат] 6 ответов

Вопрос:

Почему функция заключена в скобки? Я взял этот код из скобок, и он работает без проблем.

В чем преимущество наличия кода в (function () {... Code Here ...}) (); как в следующем примере?

Код:

(function() {
    "use strict";
    // Doesn't work because strict mode 
    // enforces the fact that the second example shouldn't work
    if (true) {
        function fn1() {
            // This won't run
            console.log("doesn't work -- have a great Die Hard Day XIII");
        };
        fn1();
    }
})();

Код здесь: что будет посылать слово JQuery в качестве параметра для этого пространства имен. Я знаю, что причина, по которой функция заключена в (...), заключается в создании пространства имен. Я думаю, что лучший вопрос был бы о том, почему нужно передать переменную, но я бы предположил, что это произойдет, если переменная понадобится другому пространству имен.

( function( $ ) {
    // Init Skrollr
    var s = skrollr.init({
        render: function(data) {
            //Debugging - Log the current scroll position.
            //console.log(data.curTop);
        }
    });
} )( jQuery );

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

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