我正在浏览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/