我正在浏览jQuery的源代码。我在理解jQuery对象的包装策略时遇到了麻烦。

(function( window, undefined ) {

    // Define a local copy of jQuery
    var jQuery = function( selector, context ) {
            // The jQuery object is actually just the init constructor 'enhanced'
            return new jQuery.fn.init( selector, context );
        },

    ....
    ....
    ....

    // Expose jQuery to the global object
    window.jQuery = window.$ = jQuery;

})(window);


具体来说,我无法理解的内容来自第一行。


最外层的未命名容器功能是什么?为什么需要它?
为什么容器函数是匿名的?
最外面的'(')括号是什么需要?

最佳答案

外部函数创建一个可变范围IIRC。
外部括号封装了函数。我认为实际上不是必需的。他们只是帮助理解
该函数是匿名的,因为它被立即调用:

(function(w) {...})(window)

关于javascript - jQuery对象的组织,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2928212/

10-12 00:49
查看更多