首先看代码
class Person {
constructor(name){
console.log(`构造函数执行了,${name}`)
}
}
let p1= new Person('jona')
此处,调用new
的时候就自动执行了构造函数,所以接收参数也是在构造函数出接收
class Person {
constructor(name){
console.log(`构造函数执行了,${name}`)
this.name=name
}
showName(){
return `名字为${this.name}`
}
}
let p1= new Person('jona')
console.log(p1.showName)
此处函数不会自动执行,只有调用的时候才会执行console.log(p1.showName);
继承:
// 父类
class Person {
constructor(name){
console.log(`构造函数执行了,${name}`)
this.name=name
}
showName(){
return `名字为${this.name}`
}
}
let p1= new Person('jona')
console.log(p1.showName)
// 子类
class children extends Person{
constructor(agrs){
super(ags)
}
showName (){
super.showName()//调用父级的方法也是用super
}
}
let p2 = new children('子类')
console.log(p2.name)
继承用extends
,当继承后需要用super()
来接收父类的constructor
构造函数,否在报错,当new
一个子类的时候先把参数传入子类构造函数再通过super()
讲父类的构造函数引入,就可以调用父类
网友评论