欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javascript原型继承

程序员文章站 2022-06-15 15:58:00
...

咱们前端的javascript比较任性调皮,类似java,c++之类的继承本质是在原有的class上,并生成一个subclass。

JavaScript由于采用原型继承,我们无法直接扩展一个Class,因为根本不存在Class这种类型。

如果咱们要原型继承的话可以这样:

1、创建一个构造函数作为运输载体;

2、将一个构造函数的原型赋予这个运输载体;

3、然后将运输载体实例化

4、将实例化后的运输载体赋予想要继承的构造函数的原型;

5、想要继承的构造函数的prototype.constructor = 想要继承的构造函数;

接下来看代码:

function inherits(Child, Parent) {
    var F = function () {};
    F.prototype = Parent.prototype;
    Child.prototype = new F();
    Child.prototype.constructor = Child;
}

这个inherits()函数可以复用:

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;
};
写的不是很透彻,望理解


相关标签: 继承原型