我正在瀏覽jQuery的源代碼。我無法理解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);
具體來說,我無法理解的是源於第一行。
什麼是最外層的未命名容器功能?爲什麼需要?
爲什麼容器的功能是匿名的?
什麼是需要在最外面的「(」括號?
看到這個問題:) http://stackoverflow.com/questions/2716069/how-does-this-javascript-jquery-syntax-work-function-window-undefined – 2010-05-28 10:30:30
該問題主要是關於'undefined'參數。但似乎有幾個鏈接在那裏... – sonofdelphi 2010-05-28 10:39:53
啊,'undefined'。這是令人費解的,不是嗎?我不確定它做了什麼。也許這是一種確保'arguments'中只有一個項目的方法?所以如果有人引用'arguments',它只有'window'值?只是一個猜測,所以可能是完全錯誤的。 – Tauren 2010-05-28 19:40:12