js类的继承(ES5写法)

  目录

js继承之终极继承寄生组合式继承

js类的继承(ES5写法)

js的继承方式有很多,大致的罗列一下:

  • 构造继承
  • 原型链继承
  • 组合继承
  • 原型式继承
  • 寄生式继承
  • 寄生组合式继承
    这里只是列举了一些,还有很多其它方法,就不一一写出。
    在这些方法中,寄生组合式继承被认为是最好的,所以,只要记住这一种写法不就可以了吗。
    寄生组合式继承代码如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function inherits(Child, Parent) {
    var F = function () {};
    F.prototype = Parent.prototype;
    Child.prototype = new F();
    Child.prototype.constructor = Child;
    }

    function Student(props) {
    this.name = props.name || 'Unnamed';
    }

    Student.prototype.hello = function () {
    alert('Hello, ' + this.name + '!');
    }

    function PrimaryStudent(props) {
    Student.call(this, props);
    this.grade = props.grade || 1;
    }

    // 实现原型继承链:
    inherits(PrimaryStudent, Student);

    // 绑定其他方法到PrimaryStudent原型:
    PrimaryStudent.prototype.getGrade = function () {
    return this.grade;
    };