原型链继承 function Person(name,age){ this.name = name this.age = age } var teacher = {} teacher.prototype = new Person("李焕英",18)
使用call方法 function Person(name,age){ this.name = name this.age = age } funciton Teacher(name,age){ Person.apply(this,name,age)
} 组合方式继承 function Person(name,age){ this.name = name this.age = age } Person.protytype.sayHi = function (){ console.log('HI') } function Teacher(name,age){ Person.call(this,name,age) } var p1 = new Person() var P2 = new Teacher("啊?",99) p2.prototype = p1
extends关键字继承 class Paren{ constructor(name,age){ this.name = name; this.age = age; } } class Children extends Parent{ constructor(name,age,job){ super(name,age); //super必须在前,否则代码报错 this.job = job; } }
但其本质仍然是 构造函数 + 原型链的 组合式继承。