• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    jQuery總體架構的理解分析_jquery

    來源:懂視網 責編:小采 時間:2020-11-27 20:58:24
    文檔

    jQuery總體架構的理解分析_jquery

    jQuery總體架構的理解分析_jquery:jQuery腳本總體結構來說,有如下形式: 代碼如下: (function( window, undefined ) { // Define a local copy of jQueryvar jQuery = function( selector, context ) { // The jQuery object is actuall
    推薦度:
    導讀jQuery總體架構的理解分析_jquery:jQuery腳本總體結構來說,有如下形式: 代碼如下: (function( window, undefined ) { // Define a local copy of jQueryvar jQuery = function( selector, context ) { // The jQuery object is actuall

    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);


    整個腳本是一個匿名函數(暫時叫它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對象的一個屬性,并可以簡寫為“$”。

    其它的補充資料:
    JQuery是個出色的javascript庫,最近結合它寫javascript,看了下源碼。
    先從整體、全局的看,jQuery的源碼幾乎都在下面的代碼中:
    代碼如下:
    (function() {

    //……

    })();

    第一個括號里面是個匿名函數,第二個括號表示馬上執行第一個括號里面的代碼。
    首先明白,javascript里面是沒有命名空間的,要保證你的javascript函數、對象與其他的不沖突,這里用了javascript的一個技巧:你的所有javascript函數、對象都在一個匿名函數里面定義,確保了所定義的函數、對象的有效范圍,起到了命名空間的作用。既然作用范圍在這個匿名函數中,怎么被別人使用呢?下面看它的下面代碼:

    var jQuery = window.jQuery = function(selector, context) {
    //……
    };

    這里讓jQuery庫中最重要的對象jQuery成為了window對象的一個屬性,這樣就可以在其他地方像使用 document(document也是window的一個屬性)一樣使用jQuery了。也許使用過jQuery的朋友驚訝-我沒有使用jQuery對象,一直使用$的。沒錯,那是jQuery的同名對象:

    window.$ = jQuery;

    現在明白了吧。

    這個庫的結構是這樣的:
    代碼如下:
    1. (function(window, undefined){
    2. var document = window.document;
    3. var jQuery = ...
    4. ...
    5. ...
    6. })(window);

    (function(window, undefined){ var document = window.document; var jQuery = ... ... ... })(window);

    整個腳本是一個匿名函數(暫時叫它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

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    jQuery總體架構的理解分析_jquery

    jQuery總體架構的理解分析_jquery:jQuery腳本總體結構來說,有如下形式: 代碼如下: (function( window, undefined ) { // Define a local copy of jQueryvar jQuery = function( selector, context ) { // The jQuery object is actuall
    推薦度:
    標簽: 理解 分析 結構
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 成人精品视频99在线观看免费 | 国产精品网站在线观看| 国产偷伦精品视频| 91原创国产精品| 人妻精品久久久久中文字幕69 | 久久精品a亚洲国产v高清不卡| 久久国产成人精品国产成人亚洲| 青青草精品视频| 国产成人A人亚洲精品无码| 亚洲精品美女久久777777| 欧美日韩国产精品系列| 国产精品性爱| 国产精品亚洲二区在线观看| 亚洲精品自产拍在线观看动漫 | 黑人精品videos亚洲人| 2022精品天堂在线视频| 国产精品亚韩精品无码a在线| 中文字幕日韩精品有码视频| 久久久久成人精品无码| 久久精品国产99久久久香蕉| 国产伦精品一区二区三区视频金莲| 久久精品九九亚洲精品天堂 | 亚洲精品乱码久久久久久按摩 | 国产精品揄拍100视频| 无码精品久久久天天影视| 一本一道精品欧美中文字幕| 亚洲一级Av无码毛片久久精品| 无码人妻精品一区二| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | HEYZO无码综合国产精品227| 亚洲欧美日韩国产精品专区| 亚洲?V乱码久久精品蜜桃 | 四虎国产精品永久地址51| 国产日韩欧美精品| 欧美精品华人在线| 99久久精品国产一区二区三区| 91在线手机精品超级观看| 国产精品v欧美精品v日韩| 国产玖玖玖九九精品视频| 国产一级精品高清一级毛片| 热久久国产欧美一区二区精品|