JavaScript基础知识十六(原型链模式-继承)

原型继承是我们JS中最常用的一种继承方式 子类B想要继承父类A中的所有的属性和方法(私有+公有),
只需要让B.prototype=new A;即可
原型继承的特点:它是把父类中私有的+公有的都继承到了子类原型上(子类公有的)

核心: 原型继承并不是把父类中的属性和方法克隆一份一模一样的给B,
而是让B和A 之间增加了原型链的链接,以后b的实例n想要用A中的getX方法,
需要一级级的向上查找来使用
1.原型继承 把父类私有和公有的属性方法 给子类变成子类公有的方法属性
/*  function A(){
          this.x =100;
      }
      A.prototype.getX=function(){
          console.log((this.x));
      }
      function B(){
          this.y=200;
      }
// B的原型指向 A的实例 实现继承 将A的私有及公有方法属性 继承为B的公有方法
B.prototype = new A;
*/

 2.CALL继承

// CALL继承的:把父类私有的属性和方法
      // 克隆一份一模一样的 作为子类私有的属性
      function A(){
          this.x = 100;
      }
      A.prototype.getX =function(){
          console.log(this.x);
      }
      function B(){
          A.call(this);//->A.call(n)
          //  把A执行让A中的this变为n
      }

3.冒充对象继承

把父类私有的和公有的克隆一份一模一样的给子类私有的

 function A(){
          this.x = 100;
      }
      A.prototype.getX=function(){
          console.log(this.x);
      }
      function B(){
          var temp = new A;
          for(var key in temp){
             this[key] = temp[key];
          }
      }
      var n = new B;
      console.log(n.x);
 


原文地址:https://www.cnblogs.com/zzzzzzzsy/p/6697511.html