很抱歉,如果此类问题多次询问过,但我对jQuery编码有点不清楚:
来自http://code.jquery.com/jquery-latest.js
(function(global,factory){
//some checks and coding
})(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
//coding stuff
})
所以,jQuery在该闭包中使用了编码,但jQuery在该范围之外是如何可用的?
答案 0 :(得分:1)
在封闭内部,你可以找到这个line of code:
return (window.jQuery = window.$ = jQuery);
因此,jQuery构造函数被明确地分配给window.jQuery
。这就是为什么它可以在外面使用。
答案 1 :(得分:1)
在这个IEFE闭合的最后,您可以看到行
// Expose jQuery and $ identifiers, even in
// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
// and CommonJS for browser emulators (#13566)
if ( typeof noGlobal === strundefined ) {
window.jQuery = window.$ = jQuery;
}
他们将$
和jQuery
标识符导出到全局window
对象。具有// coding stuff
本身的此函数是您发布的IEFE的第二个参数,并且将根据可用(或不可用)的模块加载器适当调用factory
。