Jaka jest korzyść z wbudowanych wywołań funkcji?

Widziałem ten kod (wyraźnie w jQuery, z modyfikacją)

(function(window,undefined){
    var jQuery=(function(){
        var jQuery=something;
        jQuery.xxx=xxx;
        //...
        return jQuery;
    })();
    //...
    window.jQuery=window.$=jQuery;
})(window);

Rozumiem, że kod owijania w wywołaniu funkcji inline może jasno zdefiniować zakres zmiennej, ale nie rozumiem korzyści z tego

przechodzącywindow z parametrem zamiast używać go bezpośrednio,uzyskanie instancjiundefined przez niezdefiniowany parametr, a takżedefiniowaniejQuery przez wartość zwrotną innego wywołania funkcji inline. Czy ktoś może trochę wyjaśnić?

EDYTOWAĆ napisz # 3 wyraźniej:

Rozumiem, że kod definiujejQuery w innej funkcji zwróć ją.

//(function(window,undefined){
var jQuery=(function(){
    // Inside this function defines jQuery and return it?
    var jQuery=function(selector,context){
        return new jQuery(selector,context); //simplified
    };
    jQuery.xxx=xxx;
    //...
    return jQuery;
})(); // This executes the inline function and assign `jQuery` with the return value???
//... })(window);

To bardziej jak poniżej:

function define_jQuery(){
    // Inside this function defines jQuery and return it?
    var jQuery=function(selector,context){
        return new jQuery(selector,context); //simplified
    };
    jQuery.xxx=xxx;
    //...
    return jQuery;
}

//(function(window,undefined){
var jQuery=define_jQuery(); // This executes the inline function and assign `jQuery` with the return value???
//... })(window);

Czy nie byłoby prostsze:

//(function(window,undefined){
var jQuery=function(selector,context){
    return new jQuery(selector,context); //simplified
};
jQuery.xxx=xxx;
//...
//... })(window);

questionAnswers(4)

yourAnswerToTheQuestion