1、原型继承:
把一个构造函数的实例对象直接赋值给另外一个构造函数的原型,那么这个构造函数就继承了赋值的那个实例对象上的所有成员。
function Person() {
this.name = '慢羊羊头上没草'
}
function Son() {}
Son.prototype = new Person()
const son = new Son()
console.log(son.age) //慢羊羊头上没草
2、构造函数继承:
把实例对象上的公共成员挂载到原型对象上,那么实例对象就继承了原型的所有成员。
function Person() {
}
Person.prototype.name = "慢羊羊头上没草"
console.log(new Person().name)
3、class继承
让一个class类extends继承另外一个类,那么此类就继承了那个类的所有成员
//定义一个老师类
class Teacher {
constructor(name, subject) {
this.name = name;
this.subject = subject;
}
}
//定义一个学生类
class Student {
constructor(name, score) {
this.name = name;
this.score = score;
}
}
const student = new Student('张三', 100);
const teacher = new Teacher('老师', 'js')
console.log(student.name);
console.log(teacher);