方法一:extends方法
在构造函数constructor中写super(),必须的
class Parent{
constructor(){
this.age = 18
}
}
class Child extends Parent{
constructor(){
super();
this.name = '张三';
}
}
let o1 = new Child();
console.log(o1, o1.name, o1.age)
方式二:原型链继承
在子构造函数的原型上new一个父对象
function Parent() {
this.age = 20
}
function Child() {
this.name = '张三'
}
Child.prototype = new Parent()
let o2 = new Child()
console.log(o2, o2.name, o2.age)
方法三:call()方法
function 与 call连用实现继承
function Parent() {
this.age = 20
}
function Child() {
this.name = '张三'
Parent.call(this);
}
let o3 = new Child()
console.log(o3, o3.name, o3.age)
方法四:组合式继承
原型链方法继承 + call()继承
function Parent() {
this.age = 20
}
function Child() {
this.name = '张三'
Parent.call(this);
}
Child.prototype = new Parent()
let o3 = new Child()
console.log(o3, o3.name, o3.age)