成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

淺層次分析鏈?zhǔn)秸{(diào)用的部分原理

Sike / 1441人閱讀

摘要:本來是想寫分析的部分原理,想想因為也沒有去看過源碼,就改了下標(biāo)題。準(zhǔn)備工作,用去實例化鏈?zhǔn)秸{(diào)用并非是無限延伸,而是調(diào)用完就回撤然后再次調(diào)用的過程。所以鏈?zhǔn)秸{(diào)用的基本原理是每個方法都要,并且每個方法調(diào)用都是基于的。

本來是想寫分析jQuery的部分原理,想想因為也沒有去看過jQuery源碼,就改了下標(biāo)題。

出發(fā)點很簡單,寫一個類似jQuery的簡化版工具庫。

準(zhǔn)備工作,用$去實例化:

function $(domName) {
     return new obj(domName);
 }

鏈?zhǔn)秸{(diào)用并非是無限延伸,而是調(diào)用完就回撤然后再次調(diào)用的過程。
所以鏈?zhǔn)秸{(diào)用的基本原理是 每個方法都要return this,并且每個方法調(diào)用都是基于this的。
就好比打拳,雖然打出去的動作不一樣,但是打出去就得收回來,再出拳。

出于簡化與個人水平原因,選擇器方面,暫時只寫了id 和 class類型的

function obj(domName) {
     if (String(domName)[0] === "#") {
         this.total = "singular";//表示選擇器獲得節(jié)點為單數(shù),調(diào)用其他方法的時候無需循環(huán)
         this.init = document.getElementById(new String(domName).substring(1,new String(domName).length));//獲取節(jié)點
     }else if(String(domName)[0] === "."){
         this.total = "majority";//表示選擇器獲得節(jié)點為多數(shù),調(diào)用其他方法的時候需要循環(huán)
         this.init = document.getElementsByClassName(new String(domName).substring(1,new String(domName).length));//獲取節(jié)點
     } 
     this.length = this.init.length;
 }
 

click事件(change,mouseover等事件原理類似)

obj.prototype.click  = function (cb) {
    this.init.onclick = cb;//節(jié)點點擊觸發(fā)回調(diào)函數(shù)
    return this;
} 

eq選擇器,eq是改變this的選擇對象(this.init)

obj.prototype.eq= function (index) {
    this.init = this.init[index];
    this.total = "singular";//改變選擇節(jié)點的數(shù)目類型
    return this;
} 

hide(show需要獲取一下之前的display。。。相比較hide復(fù)雜一些)

obj.prototype.hide  = function () {
    if (this.total  === "majority") {//選擇的節(jié)點為多數(shù)需要循環(huán)
        for(let i = 0; i < this.init.length; i ++) {
        this.init[i].style.display = "none";
        }
    }else if( this.total === "singular"){
        this.init.style.display = "none";
    }
    
    return this;
} 

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95442.html

相關(guān)文章

  • 30分鐘,讓你徹底明白Promise原理

    摘要:鏈?zhǔn)绞侵冈诋?dāng)前達(dá)到狀態(tài)后,即開始進(jìn)行下一個后鄰。在中發(fā)現(xiàn)沒有指定異步操作失敗的回調(diào)時,會直接將函數(shù)返回的,后同設(shè)為狀態(tài),如此達(dá)成執(zhí)行后續(xù)失敗回調(diào)的效果。 原文鏈接 前言 前一陣子記錄了promise的一些常規(guī)用法,這篇文章再深入一個層次,來分析分析promise的這種規(guī)則機(jī)制是如何實現(xiàn)的。ps:本文適合已經(jīng)對promise的用法有所了解的人閱讀,如果對其用法還不是太了解,可以移步我的上...

    Profeel 評論0 收藏0
  • 從圖像到知識:深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)圖像理解原理解析

    摘要:本文將詳細(xì)解析深度神經(jīng)網(wǎng)絡(luò)識別圖形圖像的基本原理。卷積神經(jīng)網(wǎng)絡(luò)與圖像理解卷積神經(jīng)網(wǎng)絡(luò)通常被用來張量形式的輸入,例如一張彩色圖象對應(yīng)三個二維矩陣,分別表示在三個顏色通道的像素強(qiáng)度。 本文將詳細(xì)解析深度神經(jīng)網(wǎng)絡(luò)識別圖形圖像的基本原理。針對卷積神經(jīng)網(wǎng)絡(luò),本文將詳細(xì)探討網(wǎng)絡(luò) 中每一層在圖像識別中的原理和作用,例如卷積層(convolutional layer),采樣層(pooling layer),...

    UnixAgain 評論0 收藏0
  • 深度學(xué)習(xí)-LeCun、Bengio和Hinton聯(lián)合綜述(上)

    摘要:三大牛和在深度學(xué)習(xí)領(lǐng)域的地位無人不知。逐漸地,這些應(yīng)用使用一種叫深度學(xué)習(xí)的技術(shù)。監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)中,不論是否是深層,最常見的形式是監(jiān)督學(xué)習(xí)。 三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在深度學(xué)習(xí)領(lǐng)域的地位無人不知。為紀(jì)念人工智能提出60周年,的《Nature》雜志專門開辟了一個人工智能 + 機(jī)器人專題 ,發(fā)表多篇相關(guān)論文,其中包括了Yann LeC...

    DrizzleX 評論0 收藏0
  • jQuery 源碼系列(一)總體架構(gòu)

    摘要:到目前為止,的貢獻(xiàn)者團(tuán)隊共名成員,多條,可想而知,是一個多么龐大的項目。參考源碼分析整體架構(gòu)源碼解析讀書筆記第二章構(gòu)造對象函數(shù)詳解本文在上的源碼地址,歡迎來。 歡迎來我的專欄查看系列文章。 決定你走多遠(yuǎn)的是基礎(chǔ),jQuery 源碼分析,向長者膜拜! 我雖然接觸 jQuery 很久了,但也只是局限于表面使用的層次,碰到一些問題,找到 jQuery 的解決辦法,然后使用。顯然,這種做法的...

    svtter 評論0 收藏0
  • jQuery源碼分析-整體架構(gòu)(轉(zhuǎn))

    摘要:文章出處拜讀一個開源框架,最想學(xué)到的就是設(shè)計的思想和實現(xiàn)的技巧。利用下的簡單工廠模式,來將所有對于同一個對象的操作指定同一個實例。所以的中提供了以上中擴(kuò)展函數(shù)。 文章出處 http://www.cnblogs.com/aaronjs/p/3278578.html 拜讀一個開源框架,最想學(xué)到的就是設(shè)計的思想和實現(xiàn)的技巧。 廢話不多說,jquery這么多年了分析都寫爛了,老早以前就拜讀過,...

    voidking 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<