JavaScript对象继承的方式

72 阅读1分钟

1、原型链继承

function Person(name) {
  this.name = name;
}
Person.sayName = function() {
  console.log(this.name)
}
function Teacher(age) {
  this.age = age;
}
Teacher.prototype = new Person(); // 子类原型指向父类实例实现继承

2、借用构造函数

function Person(name) {
  this.name = name;
}
function Teacher(name, age) {
  Person.call(this, name); // 借用构造函数实现继承
  this.age = age;
}

3、原型链和借用构造函数组合继承

function Person(name) {
  this.name = name;
}
Person.sayName = function() {
  console.log(this.name)
}
function Teacher(name, age) {
  Person.call(this, name); // 继承属性
  this.age = age;
}
Teacher.prototype = new Person(); // 继承方法
Teacher.prototype.sayAge = function() {
  console.log(this.age)
}

4、Class继承

class Person {
  constructor(name) {
    this.name = name;
  }
}
class Teacher extends Person {
  constructor(name, age) {
    super(name);
    this.age = age;
  }
}