2011-09-24 3 views
0

jQuery est exposée via:Qu'est-ce que jQuery a été exposé?

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

Mais il y a deux 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); 
    }, 

Je comprends que c'est des noms légitimes - ils sont de portée différente. Mais lequel a été exposé? Je suppose qu'il est var jQuery = function(selector, context), mais il semble qu'il est dans une portée différente de window.jQuery = window.$ = jQuery;

Répondre

6

Je suppose que vous êtes à la recherche à src/core.js et src/outro.js.

Au sommet de core.js, il y a ce code (comme indiqué dans votre question):

var jQuery = (function() { 

// Define a local copy of jQuery 
var jQuery = function(selector, context) { 

Ce, lui-même, pourrait ressembler à cela l'attribution d'une nouvelle fonction à jQuery. Cependant, si vous regardez en bas:

return jQuery; 

})(); 

Il est l'exécution d'une fonction qu'elle vient d'être créé, et la mise en jQuery au résultat (qui est le jQuery à l'intérieur de la fonction).

Puis, en outro.js, il y a ce code:

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

jQuery ici est le jQuery du haut de core.js. Ainsi, à travers une série d'étapes, il met en window.jQuery (ainsi que window.$) à l'objet jQuery défini comme ceci:

// 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); 
    }, 
+0

Merci !! Ça a du sens! J'étais en train de regarder http://code.jquery.com/jquery-1.6.4.js – DrStrangeLove

Questions connexes