站長資訊網
        最全最豐富的資訊網站

        javascript支持多態嗎

        JavaScript中支持多態;多態指的是為不同數據類型的實體提供統一的接口,多態類型可以將自身所支持的操作套用到其他類型的值上,在JavaScript中的多態則表示同一操作作用于不同的對象上面可以產生不同的解釋和不同的執行結果。

        javascript支持多態嗎

        本教程操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

        javascript支持多態

        在編程語言和類型論中,多態(英語:polymorphism)指為不同數據類型的實體提供統一的接口。 多態類型(英語:polymorphic type)可以將自身所支持的操作套用到其它類型的值上。

        含義

        同一操作作用于不同的對象上面,可以產生不同的解釋和不同的執行結果

        比方說,我養了一只貓和一只狗,我對它們發出同一個指令 “叫一下”,貓會喵喵喵,而狗會汪汪汪,所以讓它們叫一下就是同一操作,而叫聲不同則是不同的執行結果。

        例如

        導演說開始action的時候,每個演員就自己做自己該做的事情,

        而不是導演一個個的去告訴每個演員去做什么

        多態的最根本的好處在于,你不必再向對象詢問"你是什么類型"

        然后根據得到的答案調用對象的某個行為

        你只管調用該行為就行了,其他的一切多態機制都會為你安排妥當

        // 多態背后的思想是將 做什么 和 誰去做 分離 // 也就是將不變的事物 與 可能改變的事物 分離出來 // 先來一段反例的多態代碼 var makeSound = function (animal) { if (animal instanceof Duck) { console.log('嘎嘎嘎'); } else if (animal instanceof Chicken) { console.log('咯咯咯'); } } var Duck = function () { }; var Chicken = function () { }; makeSound(new Duck()); makeSound(new Chicken()); // 此時如果加一個狗,還需要再去改源代碼

        示例

        // 首先把不變的部分隔離出來 var makeSound = function (animal) { animal.sound(); } //然后把可變的部分各自封裝起來, var Duck = function () { } Duck.prototype.sound = function () { console.log("嘎嘎嘎"); } var Chicken = function () { } Chicken.prototype.sound = function () { console.log("咯咯咯"); } makeSound(new Duck()); makeSound(new Chicken()); //如果有一天改需求了,加一個動物 //簡單追加一條代碼就可以啦 var Dog = function () { } Dog.prototype.sound = function () { console.log("汪汪汪"); } makeSound(new Dog());

        實際案例

        // 實際案例 var googleMap = { show: function () { console.log('開始渲染谷歌地圖'); } } var baiduMap = { show: function () { console.log('開始渲染百度地圖'); } } var renderMap = function (map) { if (map.show instanceof Function) { map.show(); } } renderMap(googleMap)

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 五月花精品视频在线观看| 国产午夜精品理论片| 亚洲午夜久久久精品影院| 亚洲精品乱码久久久久久| 国产精品成人观看视频| 国产精品无码无需播放器| 亚洲国产精品自在拍在线播放| 亚洲精品自产拍在线观看动漫| 国产日韩精品欧美一区喷水| 亚洲国产人成精品| 精品一久久香蕉国产线看播放| 四虎国产精品免费久久久| 91精品国产高清91久久久久久| 亚洲av午夜国产精品无码中文字| 国产亚洲精品资在线| 久久精品国产久精国产| HEYZO无码综合国产精品227| 亚洲精品亚洲人成人网| 久久久久久一区国产精品| 国产精品gz久久久| 2021国产精品视频网站| 久久91精品久久91综合| 国产精品福利一区二区| 99国产欧美久久久精品蜜芽 | 久久亚洲精品中文字幕三区| 国产乱码精品一品二品| 精品无码一区二区三区亚洲桃色 | 四虎影院国产精品| 久久夜色精品国产亚洲av| 国模和精品嫩模私拍视频| 国产精品成人国产乱一区| 国产成人无码精品一区在线观看 | HEYZO无码综合国产精品227| 国产亚洲精品岁国产微拍精品| 久久99国内精品自在现线| 亚洲精品无码不卡在线播HE | 亚洲精品无码激情AV| 亚洲а∨天堂久久精品9966| 伊人久久无码精品中文字幕| 亚洲精品乱码久久久久久中文字幕 | 精品久久久久久亚洲|