国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS 鏈?zhǔn)秸{(diào)用 原理及實(shí)踐

BingqiChen / 1206人閱讀

摘要:一鏈?zhǔn)骄幋a好處同一對象多次其屬性或方法的時候,我們需要多次書寫對象進(jìn)行或操作鏈?zhǔn)秸{(diào)用是一種簡化此過程的一種編碼方式,使代碼簡潔易讀。

一、鏈?zhǔn)骄幋a
好處
同一對象多次其屬性或方法的時候,我們需要多次書寫對象進(jìn)行“.” 或 () 操作;鏈?zhǔn)秸{(diào)用是一種簡化此過程的一種編碼方式,使代碼簡潔、易讀。

舉個栗子(深刻不是很貼切的):日常餐廳取餐,通常我們一次拿取想要的食物一起結(jié)賬,如果每樣食物要分開取餐結(jié)賬估計內(nèi)心的草泥馬要躁動起來了。

常用場景

#jQuery的Dom操作
$("select").on("click", callback)
           .on("change", callback);
#gulp編譯
gulp.src("/path/to/**.less")
    .pipe(less())
    .pipe(cssmin())

(廢話不多說,切入正題…… )

二、鏈?zhǔn)骄幋a的原理
鏈?zhǔn)秸{(diào)用原理就是作用域鏈;實(shí)現(xiàn)需要做的工作;

對象方法的處理 (操作方法)

處理完成返回對象的引用(操作對象)
第2步鏈?zhǔn)綄?shí)現(xiàn)的方式:
<1> this的作用域鏈,jQuery的實(shí)現(xiàn)方式;【示例1】
<2> 返回對象本身, 同this的區(qū)別就是顯示返回鏈?zhǔn)綄ο螅弧臼纠?】
<3> 閉包返回對象通過調(diào)用覆蓋valueOf方法實(shí)現(xiàn),副作用獲取結(jié)果需要調(diào)用valueOf;(此種方法適用于操作方法有相互依賴的情況下使用)【示例3】

示例1 根據(jù)一個人的年齡獲取其年齡段 在線效果

person.set(10).get(); // 我還是個少年
var Person = function() {};
Person.prototype.set = function (age){
    this.age = 10; 
    return this; //this調(diào)用位置決定其詞法作用域
}
Person.prototype.get = function (){
    var age = this.age;
    if(age < 6){
        return "我還是個寶寶";
    }else if(age < 18){
        return "我還是個少年";
    }else{
     //……
    }
}

var person = new Person();
person.set(10).get(); // "我還是個少年"

示例2 示例1的實(shí)現(xiàn) 在線效果

var person = {
    set: function (age){
        this.age = 10;  //this調(diào)用位置決定其詞法作用域
        return person;
    },
    get: function (){
        var age = this.age;
        if(age < 6){
            return "我還是個寶寶";
        }else if(age < 18){
            return "我還是個少年";
        }else{
         //……
        }
    }
} 

示例3 實(shí)現(xiàn)詞語接龍游戲拼接,依賴上次的拼接結(jié)果 胸有成竹 -> 竹報平安 -> 安富尊榮 在線效果

wordschain("胸有成竹")("竹報平安")("安富尊榮").valueOf()
function wordschain(word){
    var words = word;
    function chain(word){
        words += " -> " + word;
        return chain; //操作對象本身
    }
    // valueOf 對象原始值chain [了解更多][5]
    chain.valueOf = function(){
        return words;
    }
    return chain;
}

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/89515.html

相關(guān)文章

  • 從0開始擼一個Promise(一)

    摘要:說白了,就是給聲明的添加一個包含空的對象,再由函數(shù)返回這個空。如此構(gòu)成一個層層包裹的鏈。四首先本質(zhì)是一個遞歸函數(shù),結(jié)束條件是,即終止到未掛載對象的子為止。可以看到這個函數(shù)的作用就是根據(jù)屬性逐個觸發(fā)鏈中的或函數(shù)。 背景 Promise是一種非常實(shí)用的異步編程方案,本文對于Promise源碼的分析可以增進(jìn)讀者對于Promise原理的理解,以后不再害怕異步編程,不用擔(dān)心callback he...

    MSchumi 評論0 收藏0
  • JavaScript 工作原理之四-事件循環(huán)異步編程的出現(xiàn)和 5 種更好的 async/await

    摘要:函數(shù)會在之后的某個時刻觸發(fā)事件定時器。事件循環(huán)中的這樣一次遍歷被稱為一個。執(zhí)行完畢并出棧。當(dāng)定時器過期,宿主環(huán)境會把回調(diào)函數(shù)添加至事件循環(huán)隊(duì)列中,然后,在未來的某個取出并執(zhí)行該事件。 原文請查閱這里,略有改動。 本系列持續(xù)更新中,Github 地址請查閱這里。 這是 JavaScript 工作原理的第四章。 現(xiàn)在,我們將會通過回顧單線程環(huán)境下編程的弊端及如何克服這些困難以創(chuàng)建令人驚嘆...

    maochunguang 評論0 收藏0
  • Java面試通關(guān)要點(diǎn)匯總集

    摘要:本文會以引出問題為主,后面有時間的話,筆者陸續(xù)會抽些重要的知識點(diǎn)進(jìn)行詳細(xì)的剖析與解答。敬請關(guān)注服務(wù)端思維微信公眾號,獲取最新文章。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 這里,筆者結(jié)合自己過往的面試經(jīng)驗(yàn),整理了一些核心的知識清單,幫助讀者更好地回顧與復(fù)習(xí) Java 服務(wù)端核心技術(shù)。本文會以引出問題為主,后面有時間的話,筆者陸續(xù)會抽些重要的知識點(diǎn)進(jìn)...

    gougoujiang 評論0 收藏0
  • 2018年5月前端面試題

    摘要:在上家公司裸辭之后,經(jīng)過一段時間休整,月中下旬面試了一些公司,由于本人框架使用的是,所以面試題涉及到框架的都是,現(xiàn)將面試題整理一下列舉常用的特性。事件冒泡以及事件捕獲。其他前端分頁和后端分頁優(yōu)缺點(diǎn)。包含多個子節(jié)點(diǎn)及孫節(jié)點(diǎn),遍歷。 在上家公司裸辭之后,經(jīng)過一段時間休整,5月中下旬面試了一些公司,由于本人框架使用的是vue,所以面試題涉及到框架的都是vue,現(xiàn)將面試題整理一下: es6 ...

    wwolf 評論0 收藏0

發(fā)表評論

0條評論

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