最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript設(shè)計模式之原型模式和適配器模式示例詳解

 更新時間:2022年08月26日 09:20:21   作者:RiemannHypothesis  
這篇文章主要為大家介紹了JavaScript 原型模式和適配器模式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

原型模式

原型模式介紹

原型模式是指原型實例指向創(chuàng)建對象的種類,并通過拷貝這些原型創(chuàng)建新的對象,是一種用來創(chuàng)建對象的模式,也就是創(chuàng)建一個對象作為另一個對象的prototype屬性

實現(xiàn)原型模式是在ECMAScript5中,提出的Object.create方法,使用現(xiàn)有的對象來提供新創(chuàng)建的對象的__proto__。

代碼實現(xiàn)

var lynkCoPrototype = {
    model: "領(lǐng)克",
    getModel: function () {
        console.log('車輛模具是:' + this.model);
    }
};
var volvo = Object.create(lynkCoPrototype, {
    model: {
        value: "沃爾沃"
    }
});
volvo.getModel();

適配器模式

適配器模式介紹

適配器模式(Adapter)是將一個類(對象)的接口(方法或?qū)傩裕┺D(zhuǎn)化成客戶希望的另外一個接口(方法或?qū)傩裕?,適配器模式使得原本由于接口不兼容而不能一起工作的那些類(對象)可以一些工作。別稱包裝器(wrapper)。

代碼實現(xiàn)

class GooleMap {
    show() {
        console.log('渲染谷歌地圖')
    }
}
class BaiduMap {
    show() {
        console.log('渲染百度地圖')
    }
}
function render(map) {
    if (map.show instanceof Function) {
        map.show()
    }
}
render(new GooleMap())  // 渲染谷歌地圖
render(new BaiduMap())  // 渲染百度地圖

但是假如BaiduMap類的原型方法不叫show,而是叫display,這時候就可以使用適配器模式了,因為我們不能輕易的改變第三方的內(nèi)容。在BaiduMap的基礎(chǔ)上封裝一層,對外暴露show方法。

class GooleMap {
    show() {
        console.log('渲染谷歌地圖')
    }
}
class BaiduMap {
    display() {
        console.log('渲染百度地圖')
    }
}
// 定義適配器類, 對BaiduMap類進行封裝
class BaiduMapAdapter {
    show() {
        var baiduMap = new BaiduMap()
        return baiduMap.display() 
    }
}
function render(map) {
    if (map.show instanceof Function) {
        map.show()
    }
}
render(new GooleMap())         // 渲染谷歌地圖
render(new BaiduMapAdapter())  // 渲染百度地圖

小結(jié)

  • 適配器模式主要解決兩個接口之間不匹配的問題,不會改變原有的接口,而是由一個對象對另一個對象的包裝。
  • 適配器模式符合開放封閉原則

以上就是JavaScript設(shè)計模式之原型模式和適配器模式示例詳解的詳細內(nèi)容,更多關(guān)于JavaScript 原型適配器模式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 微信小程序 地圖定位簡單實例

    微信小程序 地圖定位簡單實例

    這篇文章主要介紹了微信小程序 地圖定位簡單實例的相關(guān)資料,并附實例代碼及實現(xiàn)效果圖,需要的朋友可以參考下
    2016-10-10
  • 5個實用的JavaScript新特性

    5個實用的JavaScript新特性

    這篇文章主要為大家介紹了5個實用的JavaScript新特性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 微信小程序(十一)icon組件詳細介紹

    微信小程序(十一)icon組件詳細介紹

    這篇文章主要介紹了微信小程序icon組件詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 微信小程序 聊天室簡單實現(xiàn)

    微信小程序 聊天室簡單實現(xiàn)

    這篇文章主要介紹了微信小程序 聊天室簡單實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • javascript數(shù)據(jù)類型之原始類型詳解

    javascript數(shù)據(jù)類型之原始類型詳解

    這篇文章主要為大家介紹了javascript數(shù)據(jù)類型之原始類型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • JS深入淺出Function與構(gòu)造函數(shù)

    JS深入淺出Function與構(gòu)造函數(shù)

    這篇文章主要介紹了JS深入淺出Function與構(gòu)造函數(shù),F(xiàn)unction是一個構(gòu)造函數(shù),可以通過該構(gòu)造函數(shù)去創(chuàng)建一個函數(shù),創(chuàng)建的函數(shù)是一個Function對象,具體內(nèi)容請參考下面文章的詳細內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • Hooks封裝與使用示例詳解

    Hooks封裝與使用示例詳解

    這篇文章主要為大家介紹了Hooks封裝與使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Vue.js React與Angular流行前端框架優(yōu)勢對比

    Vue.js React與Angular流行前端框架優(yōu)勢對比

    這篇文章主要為大家介紹了Vue.js React與Angular流行前端框架優(yōu)勢對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 微信小程序 自定義Toast實例代碼

    微信小程序 自定義Toast實例代碼

    這篇文章主要介紹了微信小程序 自定義Toast實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 微信小程序后臺解密用戶數(shù)據(jù)實例詳解

    微信小程序后臺解密用戶數(shù)據(jù)實例詳解

    這篇文章主要介紹了 微信小程序后臺解密用戶數(shù)據(jù)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06

最新評論

门源| 余姚市| 明溪县| 策勒县| 齐齐哈尔市| 麻江县| 通辽市| 彭水| 宁晋县| 阿拉善盟| 屯门区| 马山县| 南康市| 陇南市| 拉萨市| 永城市| 沈阳市| 且末县| 博兴县| 定兴县| 保山市| 玉树县| 周至县| 于都县| 柘荣县| 稻城县| 宁蒗| 朝阳市| 梧州市| 固原市| 育儿| 铜山县| 桐庐县| 玛曲县| 深圳市| 南昌县| 客服| 邵东县| 孝昌县| 怀集县| 资溪县|