西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開發(fā)javascript|JQuery → 分析jQuery創(chuàng)建實(shí)例與原型繼承是怎么處理的

分析jQuery創(chuàng)建實(shí)例與原型繼承是怎么處理的

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2011/12/21 0:44:40字體大。A-A+

作者:西西點(diǎn)擊:151次評(píng)論:0次標(biāo)簽: jQuery

  • 類型:編程輔助大小:109KB語(yǔ)言:中文 評(píng)分:5.0
  • 標(biāo)簽:
立即下載

  在普通情況下我們要用原生類、或者自定義類創(chuàng)建實(shí)例要用new運(yùn)算符,使構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例,并且實(shí)例繼承構(gòu)造器prototype上的所有公有方法。如 new Object()、new Date()等等。╫bject有{},數(shù)組有[]這樣的快捷方式 ,我們主要探討new這種方式。)

  我們?cè)谑褂胘Query時(shí)從來(lái)沒(méi)有使用過(guò)new,他是不是用其他方法來(lái)生成實(shí)例呢?是不是沒(méi)有使用prototype屬性呢?事實(shí)上他都有使用,只是內(nèi)部處理的非常巧妙,提高了使用的爽快度。我們來(lái)看看他的源碼

funtion jQuery( selector, context){

  return new jQuery.fn.init( selector, context );
}  

  這里可以看出jQuery是有構(gòu)造函數(shù)的,也是用了new 創(chuàng)建實(shí)例的。那么jQuery.fn是什么呢?后面有個(gè)這樣的處理:

jQuery.fn = jQuery.prototype={
       init:function (){}
} 

  這樣我們就明白了,jQuery的構(gòu)造函數(shù)是他原型上的init方法,而不是function jQuery。這樣的話每次調(diào)用$()他都會(huì)用jQuery原型上的init創(chuàng)建一個(gè)實(shí)例,那么新的問(wèn)題來(lái)了。如果用init創(chuàng)建實(shí)例的話,這個(gè)對(duì)象繼承的是init的prototype上的方法而不會(huì)繼承jQuery prototype上的方法,那么他是怎么實(shí)現(xiàn)原型繼承的呢?

jQuery.fn.init.prototype = jQuery.fn;

  這里他有一個(gè)這樣的處理,把jQuery.fn賦值給了jQuery.fn.init.prototype ,這一步很關(guān)鍵。我門看看這些是什么。

jQuery.fn是jQuery.prototype

jQuery.fn.init.prototype是jQuery.prototype.init.prototype

  這個(gè)處理相當(dāng)于

jQuery.prototype = jQuery.prototype.init.prototype

  那么每當(dāng)我們調(diào)用$()是,jQuery就會(huì)用new運(yùn)算符調(diào)用他prototype上的init創(chuàng)建一個(gè)實(shí)例,這個(gè)由init創(chuàng)建實(shí)例會(huì)繼承jQuery protype上的所有方法,并且這個(gè)實(shí)例的__proto__內(nèi)部屬性會(huì)指向jQuery的prototype屬性。

  另外我們注意到這個(gè)處理:

jQuery.fn = jQuery.prototype

這是他為了避免頻繁的操作jQuery.prototype,所以用jQuery.fn緩存了jQuery.prototype。

    這些的處理實(shí)在是非常巧妙,內(nèi)部處理了實(shí)例創(chuàng)建不用使用者用new去生成實(shí)例,又非常漂亮的處理了prototype保證多實(shí)例共享方法減少資源開支,約翰哥真的不簡(jiǎn)單。

    html編輯器
    (73)html編輯器
    我們做網(wǎng)頁(yè)的時(shí)候最難找的就是編輯器,網(wǎng)上找一個(gè)吧,要不是圖片上傳錯(cuò)誤,就是到處都是錯(cuò)誤,垃圾太多.大家都需要一個(gè)簡(jiǎn)單,速度快的.西西為您提供最好用的編輯器一站式下載編輯器定義編輯器指的是一類編輯制作工具,可自定義窗囗,編輯主題索引,可選擇添搜索頁(yè),無(wú)任何不自由。編輯器哪個(gè)好用小編個(gè)人比較喜歡使用和,這兩款編輯器軟件都有不錯(cuò)的表現(xiàn)。至于編輯器哪個(gè)好用,這就要根據(jù)你的個(gè)人需求去選擇對(duì)應(yīng)的編輯器啦...更多>>
    • UltraEdit-32中文版21.20.1001 中文

      06-29 / 19.5M

      推薦理由:ultraEdit 32 破解版 簡(jiǎn)體中文 內(nèi)有安裝說(shuō)明,完全免費(fèi),無(wú)試用期的。該軟件功能強(qiáng)大,能打開各種格式的文件
    • pyscripter x642.5.3 官方最新版

      11-10 / 4.7M

      推薦理由:python編輯器,代碼補(bǔ)全、參數(shù)提示補(bǔ)全工具,這個(gè)工具其實(shí)非常重要,可以大大提高開發(fā)效率,減少出錯(cuò)。很滿
    • 快手AAuto Studio10.152 綠色中文免

      02-20 / 8.5M

      推薦理由:快手aauto是由一鶴軟件耗時(shí)四年開發(fā)新一代編程語(yǔ)言。完美支持靜態(tài)類型、動(dòng)態(tài)類型,完美支持com、dllapi、re
    • ultraedit64位破解版v22.20.0.49 綠

      03-31 / 37.9M

      推薦理由:UltraEdit是最強(qiáng)大的一款超值文本編輯器!ultraedit64位破解版,適用于Windows64位系統(tǒng)使用,此版為綠色破解
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁(yè)設(shè)計(jì)軟件,是最優(yōu)秀的可視化網(wǎng)頁(yè)設(shè)計(jì)工
    • Adobe Dreamweaver CS5官方簡(jiǎn)體中文

      05-15 / 436.8M

      推薦理由:Adobe Dreamweaver CS5 軟件使設(shè)計(jì)人員和開發(fā)人員能充滿自信地構(gòu)建基于標(biāo)準(zhǔn)的網(wǎng)站。由于同新的 Adobe CS Li
    dreamweaver cs6
    (14)dreamweaver cs6
    新版本使用了自適應(yīng)網(wǎng)格版面創(chuàng)建頁(yè)面,在發(fā)布前使用多屏幕預(yù)覽審閱設(shè)計(jì),可大大提高工作效率。改善的性能,更高效地傳輸大型文件。實(shí)時(shí)視圖和多屏幕預(yù)覽面板可呈現(xiàn)代碼,更能夠檢查自己的工作。曾經(jīng)風(fēng)靡一時(shí)的網(wǎng)頁(yè)三劍客成員之一是目前應(yīng)用最廣的網(wǎng)頁(yè)制作軟件,原本是由公司所開發(fā)的著名網(wǎng)站開發(fā)工具,隨被收購(gòu)后,改名為。它是第一套針對(duì)專業(yè)網(wǎng)頁(yè)設(shè)計(jì)師特別發(fā)展的視覺(jué)化網(wǎng)頁(yè)開發(fā)工具,以及在之后推出的針對(duì)專業(yè)網(wǎng)頁(yè)圖像設(shè)計(jì)的,三者...更多>>
    • Dreamweaver cs6中文版官方原版

      11-19 / 279.7M

      推薦理由:AdobeDreamweaverCS6是AdobeCreativeSuite6系列中的HTML編輯器和網(wǎng)頁(yè)設(shè)計(jì)軟件,是最優(yōu)秀的可視化網(wǎng)頁(yè)設(shè)計(jì)工
    • Dreamweaver cc amtlib.dll補(bǔ)丁

      07-05 / 834KB

      推薦理由:Adobe Dreamweaver CC 13.0 build 6390多語(yǔ)言正式版的破解補(bǔ)丁,破解后程序不再提示剩余天數(shù)與激活注冊(cè)。關(guān)
    • Dreamweaver CS5 HTML 5 擴(kuò)展包

      06-22 / 5.7M

      推薦理由:安裝了該擴(kuò)展后再也不用擔(dān)心不記得難記的css3樣式代碼了! 剛裝 Dreamweaver CS5 的時(shí)候,發(fā)現(xiàn)新建文檔的時(shí)
    • Dreamweaver插件包西西整理

      01-08 / 2.7M

      推薦理由:西西小編整理的一些比較常用的Dreamweaver插件,希望能對(duì)大家有所幫助!persistent_layers 不管滾動(dòng)條如何拉
    • Adobe Dreamweaver CS4中文精簡(jiǎn)版

      04-11 / 84.5M

      推薦理由:使用業(yè)界領(lǐng)先的Web 創(chuàng)作工具之一構(gòu)建世界級(jí)的網(wǎng)站和應(yīng)用程序。Adobe® Dreamweaver® CS4 軟件是 W
    • Dreamweaver jQuery智能提示插件1.

      07-31 / 109KB

      推薦理由:1.2.0版本插件在1.0.0插件基礎(chǔ)上進(jìn)一步修改,版權(quán)信息僅保留致謝信息,刪除作者為了代碼整體提示美觀度,故

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)