亚洲av午夜福利精品一区人妖,亚洲乱码日产精品a级毛片久久,91精品视频观看,青草青草久热精品视频在线观看

jquery原理的簡單分析

2018-5-31    周周

       jquery是一個輕量級的JS框架,這點相信大部分人都聽過,而jquery之所以有這樣一個稱呼,就是因為它悄悄披了一件外衣,將自己給隱藏了起來。

      /以下截取自jquery源碼片段
      (function( window, undefined ) {
      /*    源碼內容    */
       })( window );

      上面這一小段代碼來自于1.9.0當中jquery的源碼,它是一個無污染的JS插件的標準寫法,專業(yè)名詞叫閉包。可以把它簡單的看做是一個函數(shù),與普通函數(shù)不同的是,這個函數(shù)沒有名字,而且會立即執(zhí)行,就像下面這樣,會直接彈出字符串。

      (function( window, undefined ) {
         alert("Hello World!");
       })( window );

       可以看出來這樣寫的直接效果,就相當于我們直接彈出一個字符串。但是不同的是,我們將里面的變量變成了局域變量,這不僅可以提高運行速度,更重要的是我們在引用jquery的JS文件時,不會因為jquery當中的變量太多,而與其它的JS框架的變量命名產生沖突。對于這一點,我們拿以下這一小段代碼來說明。

     var temp = "Hello World!";
        (function( window, undefined ) {
         var temp = "ByeBye World!";
        })( window );
        alert(temp);

       這段代碼的運行結果是Hello而不是ByeBye,也就是說閉包中的變量聲明沒有污染到外面的全局變量,倘若我們去掉閉包,則最終的結果會是ByeBye,就像下面這樣。

      var temp = "Hello World!";
        //    (function( window, undefined ) {
         var temp = "ByeBye World!";
      //    })( window );
       alert(temp);

       由此就可以看出來,jquery的外衣就是這一層閉包,它是很重要的一個內容,是編寫JS框架必須知道的知識,它可以幫助我們隱藏我們的臨時變量,降低污染。

       剛才我們說了,jquery將自己聲明的變量全部都用外衣遮蓋起來了,而我們平時使用的Jquery和$,卻是真真實實的全局變量,這個是從何而來,謎底就在jquery的某一行代碼,一般是在文件的末尾。

window.jQuery = window.$ = jQuery;
       這一句話將我們在閉包當中定義的jQuery對象導出為全局變量jQuery和$,因此我們才可以在外部直接使用jQuery和$。window是默認的JS上下文環(huán)境,因此將對象綁定到window上面,就相當于變成了傳統(tǒng)意義上的全局變量,就像下面這一小段代碼的效果一樣。

      var temp = "Hello World!";
      (function( window, undefined ) {
         var temp = "ByeBye World!";
         window.temp = temp;
       })( window );
       alert(temp);

       很明顯,它的結果應該是ByeBye,而不是Hello。因為我們在閉包中導出了temp局部變量為全局變量,從而覆蓋了第一行聲明的全局變量temp。

        jquery最核心的功能,就是選擇器。而選擇器簡單理解的話,其實就是在DOM文檔中,尋找一個DOM對象的工具。

        首先我們進入jquery源碼中,可以很容易的找到jquery對象的聲明,看過以后會發(fā)現(xiàn),原來我們的jquery對象就是init對象。

         jQuery = function( selector, context ) {
          return new jQuery.fn.init( selector, context, rootjQuery );
         }

         jQuery.fn = jQuery.prototype;

         jQuery.fn.init.prototype = jQuery.fn;
        這兩句話,第一句把jQuery對象的原型賦給了fn屬性,第二句把jQuery對象的原型又賦給了init對象的原型。也就是說,init對象和jQuery具有相同的原型,因此我們在上面返回的init對象,就與jQuery對象有一樣的屬性和方法。
很多時候,我們在jQuery和DOM對象之間切換時需要用到[0]這個屬性。從截圖也可以看出,jQuery對象其實主要就是把原生的DOM對象存在了[0]的位置,并給它加了一系列簡便的方法。這個索引0的屬性我們可以從一小段代碼簡單的看一下它的由來,下面是init方法中的一小段對DOMElement對象作為選擇器的源碼。

      // Handle $(DOMElement)
       if ( selector.nodeType ) {
            /*     可以看到,這里將DOM對象賦給了jQuery對象的[0]這個位置  */
            this.context = this[0] = selector;
            this.length = 1;
           return this;
        }

       這一小段代碼可以在jquery源碼中找到,它是處理傳入的選擇參數(shù)是一個DOM對象的情況。可以看到,里面很明顯的將jQuery對象索引0的位置以及context屬性,都賦予了DOM對象。代碼不僅說明了這一點,也同時說明了,我們使用$(DOMElement)可以將一個DOM對象轉換為jQuery對象,從而通過轉換獲得jQuery對象的簡便方法。

日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

亚洲av午夜福利精品一区人妖,亚洲乱码日产精品a级毛片久久,91精品视频观看,青草青草久热精品视频在线观看
<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 亚洲第一网站免费视频| 国内一区二区在线视频观看 | 欧美日韩国产限制| 欧美电影在线观看| 欧美大片在线看| 欧美日韩国产成人在线观看| 欧美日韩裸体免费视频| 国产精品人成在线观看免费| 久久综合色播五月| 亚洲大黄网站| 久久亚洲一区| 亚洲网站在线看| 亚洲天堂av综合网| 亚洲手机成人高清视频| 在线精品在线| 国产综合精品一区| 在线观看日韩av先锋影音电影院| 在线精品亚洲| 99国内精品| 亚洲一区二区三区在线看| 亚洲欧美日韩在线| 欧美一区二区三区久久精品| 久久精品在线| 欧美大片在线看免费观看| 欧美人与性动交α欧美精品济南到| 欧美喷水视频| 欧美日韩福利| 国产精品一区二区在线观看| 国产一区二区精品丝袜| 一区二区在线视频| 日韩视频在线观看| 中文av字幕一区| 欧美一区二区三区视频在线观看| 欧美在线观看www| 美国成人直播| 欧美日韩一区二区三区四区在线观看 | 亚洲免费激情| 午夜精品久久久久久久久久久久久 | 亚洲黄一区二区| av不卡在线看| 欧美在线高清| 欧美福利精品| 国产精品久久久久久福利一牛影视| 国产欧美日韩伦理| 亚洲激情专区| 午夜精品网站| 牛牛影视久久网| 国产精品成人一区二区三区吃奶 | 欧美激情一区二区三区不卡| 国产精品久久久久影院色老大| 激情视频一区二区三区| 一本色道久久综合亚洲精品不| 亚洲欧美中文日韩在线| 欧美a级大片| 国产精品羞羞答答xxdd| 亚洲黄色高清| 欧美亚洲在线观看| 欧美精品 日韩| 国产在线观看精品一区二区三区| 亚洲精品视频在线播放| 欧美一区1区三区3区公司| 欧美精品1区2区| 国产精品日韩| 亚洲免费播放| 久久久久久久精| 国产精品啊v在线| 亚洲第一视频网站| 午夜精品一区二区三区在线| 欧美大片在线影院| 国产综合色一区二区三区| 这里是久久伊人| 欧美成人午夜激情视频| 国产精品亚洲综合| 国产欧美一区二区三区视频| 日韩特黄影片| 久久久99爱| 国产精品一二| 夜夜嗨av色一区二区不卡| 理论片一区二区在线| 国产日产亚洲精品| 亚洲淫性视频| 欧美日韩一区在线| 亚洲精品在线三区| 免费一级欧美片在线播放| 国产视频一区二区三区在线观看| 国产欧美日韩精品在线| 99国产麻豆精品| 欧美国产日本| 亚洲电影中文字幕| 久久亚洲综合网| 国内精品**久久毛片app| 性久久久久久久久| 国产精品青草综合久久久久99 | 亚洲天堂激情| 欧美日韩在线看| 日韩亚洲欧美综合| 欧美精品日韩一区| 国产精品久久激情| 亚洲桃色在线一区| 欧美午夜电影网| 一区二区毛片| 欧美日韩伊人| 一区二区三区日韩| 欧美日韩一区二区免费视频| 亚洲精品自在久久| 欧美激情一区| 亚洲精品欧美日韩| 欧美激情网站在线观看| 亚洲欧洲一区二区天堂久久 | 国产精品国产精品| 亚洲午夜电影在线观看| 欧美性猛片xxxx免费看久爱| 在线视频一区二区| 国产精品扒开腿做爽爽爽软件| 一区二区国产日产| 国产精品av久久久久久麻豆网| 中文欧美字幕免费| 免费看成人av| 亚洲精品久久久久中文字幕欢迎你| 久久久久久电影| 精品成人在线观看| 欧美一区2区三区4区公司二百| 国产私拍一区| 久久久久久九九九九| 伊人久久婷婷| 欧美阿v一级看视频| 亚洲日本va午夜在线影院| 欧美精品电影| 亚洲天堂免费观看| 国产精品视频在线观看| 欧美在线观看视频| 黑丝一区二区三区| 欧美成人免费小视频| 99视频精品在线| 欧美天堂在线观看| 亚洲一区二区三区欧美| 国产日韩欧美麻豆| 久久精品国产亚洲一区二区三区 | 激情久久久久久久| 欧美大成色www永久网站婷| 亚洲剧情一区二区| 欧美色欧美亚洲高清在线视频| 亚洲一区二区三区四区五区午夜| 国产麻豆一精品一av一免费| 久久久久久色| 亚洲麻豆av| 国产农村妇女精品一二区| 亚洲欧美在线观看| 在线电影国产精品| 欧美色视频在线| 久久成人久久爱| 欧美99久久| 日韩写真视频在线观看| 国产精品欧美一区二区三区奶水 | 国产色综合久久| 免播放器亚洲一区| 在线一区二区日韩| 国产综合久久久久久| 欧美人与性禽动交情品 | 亚洲一区三区视频在线观看| 国产一区91| 欧美精品粉嫩高潮一区二区| 亚洲一级特黄| 一区二区亚洲精品国产| 欧美日韩一区二区免费视频| 久久国产精品久久久久久久久久| 亚洲国产成人在线播放| 国产精品h在线观看| 久久久亚洲影院你懂的| 99精品欧美一区二区三区| 国产三级精品在线不卡| 欧美激情综合色综合啪啪| 性欧美长视频| 亚洲精品综合| 狠狠色丁香久久婷婷综合丁香| 欧美日韩不卡视频| 久久九九久精品国产免费直播| 日韩视频一区二区在线观看 | 日韩一二在线观看| 国产一区二区中文字幕免费看| 欧美巨乳在线观看| 久久av一区二区三区亚洲| 99热这里只有成人精品国产| 狠狠色狠狠色综合日日小说| 欧美午夜精品电影| 欧美成人午夜77777| 欧美在线综合| 中文一区在线| 亚洲黄一区二区| 国产亚洲欧洲| 国产精品v日韩精品| 欧美激情精品| 久久全球大尺度高清视频| 欧美另类综合| 久久综合久久美利坚合众国| 亚洲欧美日韩一区二区三区在线| 亚洲免费黄色| 91久久精品国产91久久性色| 国产一区日韩一区| 国产精品香蕉在线观看|