91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是js模板模式

發布時間:2021-11-06 15:44:16 來源:億速云 閱讀:134 作者:iii 欄目:web開發

本篇內容主要講解“什么是js模板模式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“什么是js模板模式”吧!

什么是模板模式?

模板模式是抽象父類定義了子類需要重寫的相關方法。 而這些方法,仍然是通過父類方法調用的。  根據描述,“模板”的思想體現在:父類定義的接口方法。 除此之外,子類方法的調用,也是被父類控制的。

應用場景

  一些系統的架構或者算法骨架,由“BOSS”編寫抽象方法,具體的實現,交給“小弟們”實現。 而絕對是不是用“小弟們”的方法,還是看“BOSS”的心情。 不是很恰當的比喻哈~

ES6 實現

Animal是抽象類,Dog和Cat分別具體實現了eat()和sleep()方法。 Dog或Cat實例可以通過live()方法調用eat()和sleep()。

 注意:Cat和Dog實例會被自動添加live()方法。不暴露live()是為了防止live()被子類重寫,保證父類的控制權。

class Animal {

  constructor() {

    // this 指向實例

    this.live = () => {

      this.eat();

      this.sleep();

    };

  }

  eat() {

    throw new Error("模板類方法必須被重寫");

  }

  sleep() {

    throw new Error("模板類方法必須被重寫");

  }

}

class Dog extends Animal {

  constructor(...args) {

    super(...args);

  }

  eat() {

    console.log("狗吃糧");

  }

  sleep() {

    console.log("狗睡覺");

  }

}

class Cat extends Animal {

  constructor(...args) {

    super(...args);

  }

  eat() {

    console.log("貓吃糧");

  }

  sleep() {

    console.log("貓睡覺");

  }

}

/********* 以下為測試代碼 ********/

// 此時, Animal中的this指向dog

let dog = new Dog();

dog.live();

// 此時, Animal中的this指向cat

let cat = new Cat();

cat.live();

到此,相信大家對“什么是js模板模式”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

宁蒗| 乐清市| 斗六市| 吴堡县| 奈曼旗| 池州市| 东明县| 福清市| 辽宁省| 方山县| 华坪县| 随州市| 溧水县| 高邑县| 昌都县| 旌德县| 阿图什市| 合水县| 孟州市| 齐齐哈尔市| 岐山县| 星子县| 勐海县| 佛教| 海安县| 平乐县| 金平| 永年县| 天镇县| 乌拉特前旗| 闸北区| 建德市| 南京市| 信丰县| 扶沟县| 沛县| 永宁县| 罗定市| 乐安县| 武强县| 竹溪县|