jQuery通过以下方式公开:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
Run Code Online (Sandbox Code Playgroud)
但是有两个jQuery:
var jQuery = (function() {
// 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, rootjQuery );
},
Run Code Online (Sandbox Code Playgroud)
我知道它是合法的名字 - 它们来自不同的范围.但是哪一个曝光了?我想它是,var jQuery = function( selector, context )但似乎它的范围不同 window.jQuery = window.$ = jQuery;
我假设你正在寻找src/core.js和src/outro.js.
在顶部core.js,有这个代码(如你的问题所示):
var jQuery = (function() {
// Define a local copy of jQuery
var jQuery = function( selector, context ) {
Run Code Online (Sandbox Code Playgroud)
这本身就可能看起来像是在分配一个新功能jQuery.但是,如果你看一下底部:
return jQuery;
})();
Run Code Online (Sandbox Code Playgroud)
它正在执行它刚刚创建的函数,并设置jQuery为结果(jQuery来自函数内部).
然后,在outro.js,有这个代码:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
})(window);
Run Code Online (Sandbox Code Playgroud)
jQuery这是jQuery从顶部core.js.因此,通过一系列步骤,它设置window.jQuery(以及window.$)如下jQuery定义的对象:
// 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, rootjQuery );
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |