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

        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號
        主站蜘蛛池模板: 亚洲爆乳精品无码一区二区三区| 国产精品丝袜黑色高跟鞋| 国产精品99久久久久久宅男| 亚洲精品国产V片在线观看| 91精品观看91久久久久久| 久久久久久亚洲Av无码精品专口 | 欧美日韩成人精品久久久免费看 | 久久久久久九九99精品| 久久99精品久久久久久野外| 奇米精品一区二区三区在线观看| 国产在线精品无码二区| 亚洲精品国产精品乱码在线观看| 久久激情亚洲精品无码?V| 国产成人精品综合久久久| 国产亚洲精品拍拍拍拍拍| 996久久国产精品线观看| 久久影院综合精品| 亚洲无码日韩精品第一页| 久久99精品国产麻豆不卡| 国内精品久久久久久麻豆| 98精品国产自产在线XXXX| 国产精品高清视亚洲精品| 国产午夜精品免费一区二区三区| 亚洲AV无码成人网站久久精品大| 亚洲午夜精品第一区二区8050| 久久精品中文字幕有码| 国产精品视频九九九| 久久精品天天中文字幕人妻| 亚洲AV永久无码精品一区二区国产 | 国产精品天干天干综合网| 精品无码AV无码免费专区| 亚洲国产精品VA在线看黑人| 亚洲精品乱码久久久久久按摩 | 秋霞久久国产精品电影院| 国内精品免费在线观看 | 国产成人A人亚洲精品无码| 精品人妻久久久久久888| 国产精品VA在线观看无码不卡| 久久66热人妻偷产精品9| 精品亚洲A∨无码一区二区三区| 久久久久久亚洲Av无码精品专口|