<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      javaScript面向對象(繼承篇)

       

      一、構造函數繼承

       
      function Parent() {
        this.money = '2億'
        this.eat = function () {
          console.log('吃飯')
        }
      }
      
      function Son(name, age) {
        Parent.apply(this, arguments)
        this.name = name;
        this.age = age
      
      }
      
      var s = new Son("小明", 18);
      s.eat()//吃飯

       

      二、prototype模式

      * 通過 子類的prototype = 父類的實例來繼承
      * 缺點:效率比較低,比較廢內存
       
      function Parent() {
        this.money = '2億'
        this.eat = function () {
          console.log('吃飯')
        }
      }
      
      Parent.prototype.hobby = function () {
        console.log("旅行")
      }
      
      
      function Son(name, age) {
        this.name = name;
        this.age = age
      }
      
      
      Son.prototype = new Parent(); // 將Son的prototype對象指向一個Parent的實例。它相當于完全刪除了prototype 對象原先的值,然后賦予一個新值
      /**
      *
      * 任何一個prototype對象都有一個constructor屬性,指向它的構造函數。
      * 如果沒有"Son.prototype = new Parent();"這一行,Son.prototype.constructor是指向Son的;加了這一行以后,Son.prototype.constructor指向Parent。
      *
      */
      Son.prototype.constructor = Son
      
      var son = new Son("小明", 18);
      son.hobby()//旅行
      
      

       


      三、直接繼承prototype

      * 子類的prototype = 父類的prototype
      * 缺點:子類的prototype和父類的prototype指向同一個對象,那么子類的prototype修改那么父類的prototype也會修改

       

      function Parent() { }
      
      Parent.prototype.hobby = function () {
        console.log("旅行")
      }
      
      
      function Son(name, age) {
        this.name = name;
        this.age = age
      }
      
      Son.prototype = Parent.prototype;
      Son.prototype.constructor = Son;
      
      let s = new Son();
      s.hobby();//旅行
      
      

       


      四、利用空對象作為中介

      * 優點:空對象幾乎不占內存,子類的prototype修改不會影響到父類prototype的改變

       

      function Parent() { }
      
      Parent.prototype.hobby = function () {
        console.log("旅行")
      }
      
      function Son(name, age) {
        this.name = name;
        this.age = age
      }
      
      // function Buffer(){} //空對象
      // Buffer.prototype = Parent.prototype;
      // Buffer.prototype.constructor = Buffer;
      // Son.prototype = new Buffer();
      // Son.prototype.constructor = Son;
      // let s = new Son();
      // s.hobby()
      
      /**
      * 對上述方法進行封裝
      */
      
      function extend(Child, Parent) {
        function Buffer() { };
        Buffer.prototype = Parent.prototype;
        Buffer.prototype.constructor = Buffer;
        Child.prototype = new Buffer();
        Child.prototype.constructor = Child
      }
      
      extend(Son, Parent);
      let s = new Son();
      s.hobby()//旅行
      
      

       

      posted @ 2020-12-02 22:26  zshNo1  閱讀(93)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲精品AA片在线播放天| 中文字幕日韩国产精品| 国产福利萌白酱在线观看视频| 极品白嫩少妇无套内谢| 天天摸天天做天天添欧美| 精品国产高清中文字幕| 色99久久久久高潮综合影院| 亚洲一区二区三区在线| 亚洲国产福利成人一区二区| 精品久久久久久亚洲综合网| 亚洲 小说区 图片区 都市| 国产精品国产精品国产专区| 国产精品无码无卡在线播放| 人妻精品动漫h无码| 精品人妻少妇嫩草av系列| 国产三级精品三级在线看| 日韩国产精品中文字幕| 又黄又刺激又黄又舒服| 91无码人妻精品一区| 99久久激情国产精品| 人妻丰满熟妇AV无码区乱| 亚洲一品道一区二区三区 | 午夜DY888国产精品影院| 一区二区在线观看 激情| 美女一区二区三区亚洲麻豆| 人妻少妇精品系列一区二区| 日日噜噜夜夜爽爽| 深夜视频国产在线观看| 亚洲大尺度无码无码专线| 欧美午夜小视频| 国产精品国产片在线观看| 猫咪www免费人成网站| 麻豆一区二区三区蜜桃免费| 亚洲日韩精品无码av海量| 国产亚洲精品AA片在线播放天| 日本激情久久精品人妻热| 中文字幕日本一区二区在线观看| 黄色三级亚洲男人的天堂| 兴安县| 日韩精品专区在线影观看| 99蜜桃在线观看免费视频网站|