ES6中的继承
关键字 extends
有如下父类,子类想要继承父类中的属性和方法,需要用到关键字extends
//父类
class person{
constructor(name,age){
this.name = name
this.age = age
}
fn(){
console.log(this.name,this.age)
}
}
//子类
class son extends person{
}
let person1 = new person("张三",18)
person1.fn()
let person2 = new son("李四",19)
person2.fn()
输出结果
张三 18
李四 19
关键字 super()
- 如果子类没有写
constructor
属性,可以省略super
不写 super()
必须写在this之前super()
必须存在与子类,且可以给父类传参super()
可以调用父类方法,super不可以单独存在
//父类
class person{
constructor(name,age){
this.name = name
this.age = age
}
fn(){
console.log(this.name,this.age)
}
}
//子类
class son extends person{
constructor(name,age){
super(name,age)
this.height = "178cm"
}
func(){
console.log("我是子类方法,使用super调用了父类方法")
super.fn()
}
}
let person1 = new person("张三",18)
console.log(person1)
person1.fn()
let person2 = new son("李四",19)
console.log(person2)
person2.func()
输出结果
{name: '张三', age: 18}
张三 18
{name: '李四', age: 19, height: '178cm'}
我是子类方法,使用super调用了父类方法
李四 19
万万语录
2022.11.21
今天24号,吴老师一口气让我写两个21号的笔记,扣二十分