zoukankan      html  css  js  c++  java
  • ES5中的继承(组合继承)

      ES6中类的继承使用extends关键字,那么ES5中是怎么实现的呢?

      ES5中采用构造函数和原型对象的组合方式模拟继承,所以也称为组合继承;

      核心原理:通过call()借用父构造函数,并把父类型的this指向子类型的this;

      这种继承,实际上是在调用子构造函数创建实例对象时,在子构造函数内调用了父构造函数,那么就可以获得父构造函数中的成员,同时修改被调用的父构造函数的this的指向为子函数即可,成员就会被继承到子函数中;

      用一句话说:使用call()在子构造函数调用父构造函数,实现继承;记得修改父构造函数中的this为子函数中的this

    function Father(uname, age){
      this.uname = uame;
      this.age = age;        
    }
    function Son(uname, age){
      Father.call(this);
    }
    

      借用原型对象继承方法

    Son.prototype = new father();//因为可以通过原型链访问到Father的原型对象中的方法
    Son.prototype.constructor = Son;//上面的赋值操作,会使Son的constructor指向Father
    

      

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/joeynkay/p/12734884.html
Copyright © 2011-2022 走看看