zoukankan      html  css  js  c++  java
  • 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);
     


  • 相关阅读:
    【计算机视觉】欧拉角Pitch/Yaw/Roll
    【leetcode】101-Symmetric Tree
    【leetcode】100-Same Tree
    【leetcode】88-Merge Sorted Array
    【leetcode】83-Remove Duplicates from Sorted List
    【leetcode】70-ClimbingStairs
    【计算机视觉】KCF算法
    第1章 Linux系统简介
    第1课 进阶高手的大门
    第3章 在对象之间搬移特性(2):提炼类、类的内联化
  • 原文地址:https://www.cnblogs.com/zzzzzzzsy/p/6697511.html
Copyright © 2011-2022 走看看