zoukankan      html  css  js  c++  java
  • JS:继承

    继承

       原型链实现了继承,但无法传参和共享

              function Box(){          //Box()构造函数
                         this.name = "lee";
                     }
    
                     function Desk(){        //Desk()构造函数
                         this.age = 100;
                     }
    
                     Desk.prototype = new Box();  //通过原型Desk()继承了Box()
                     Desk.prototype.age = 200;//对应第255行
                     
    
                     var desk = new Desk();
                     alert(desk.age);
                     alert(desk.name); //undefind, 对应第220行
    
                     function Table(){
                         this.level = "cccc";
                     }
    
                     Table.prototype = new Desk();
    
    
                     var table = new Table();
                     alert(table.name);

    原型链+构造函数的模式,称为组合继承,解决了传参和共享的问题,常用此方法。

              function Box(age){
                         this.name = ["ll","cc","kk"];
                         this.age = age;
                     }
    
                     Box.prototype.run = function(){
                         return this.name + this.age;
                     }
    
                     function Desk(age){
                         Box.call(this,age);//this表示Desk. 对象冒充,给父类传参,解决了传参问题
                     }
    
                     Desk.prototype = new Box(); //原型链继承,解决了共享问题
    
                     var desk = new Box(120);
                     //alert(desk.age);//20
                     //alert(desk.name); //llcckk
                     desk.name.push("00");
                     //alert(desk.name); //llcckk00
                     alert(desk.run());

    对象冒充 解决了传参问题

      为了结局引用共享和超类型无法传参的问题,我们采用一种叫借用构造函数的技术,或者成为对象冒充(伪造对象,经典继承)的技术来解决这两种问题。

      

  • 相关阅读:
    改写历史,永久删除git库的物理文件
    双调排序
    GitHub从无到有
    Nginx的安装与基本应用
    Django从无到有的艰苦历程
    pycharm 相关设置问题
    ORM介绍
    Django中的过滤器
    FBV和CBV的差异
    django中models field详解
  • 原文地址:https://www.cnblogs.com/wine/p/5017141.html
Copyright © 2011-2022 走看看