jQuery总体架构的理解
jQuery腳本總體結構來說,有如下形式:
(function( window, undefined ) { // Define a local copy of jQueryvar 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 objectwindow.jQuery = window.$ = jQuery; })(window);對這樣的結構不很理解,也沒做深究,只知道和和所謂的
Technorati 標簽: JQuery,Javascript,Web前端js閉包的概念相關,今天查了一些資料,有了些基本的理解。實際是定義了一個全局函數,前一個括號為一個匿名函數,后面為函數的調用。可以這樣理解:
var fun=function(window, undefined){ ... ... }fun(window);如http://streamlet77.javaeye.com/blog/914305的解釋可以比較好的說明:
整個腳本是一個匿名函數(暫時叫它mainFn吧),函數被加載的時候便開始執行,mainFn可以接收兩個參數,執行時只傳遞一個參數window.
?? 1. 具體解釋下這個寫法的意思:
?? 2.?? window???? 函數執行時會傳入window,這個傳入的window是全局對象(通常為Window)的
?? 3.????????????? 一個屬性且window=this,而傳入mainFn函數中作為其參數時,它會被存儲在
?? 4.????????????? mainFn的調用對象中.在原型鏈中查找變量的策略是(非嵌套函數):先查找調用
?? 5.????????????? 對象,再查找全局對象,所以這使得整個mainFn中使用的window時查找效率更高
?? 6.?? undefined? 由于執行時并未傳遞第二個參數,故變量undefined的值為undefined.早期版
?? 7.????????????? 本的瀏覽器中全局對象可能沒有undefined屬性,所以不能直接使用它.通常避免
?? 8.????????????? 這個問題的寫法是 window.undefined = window.undefined?
?
然后在最后讓jQuery庫中最重要的對象jQuery成為了window對象的一個屬性,并可以簡寫為“$”。
轉載于:https://www.cnblogs.com/lazeman/archive/2011/03/05/1971884.html
總結
以上是生活随笔為你收集整理的jQuery总体架构的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝马x5L自带360全景的打转向有影像吗
- 下一篇: 青核桃煮土豆怎么做?