ES6类和继承

首先看代码

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()讲父类的构造函数引入,就可以调用父类

你可能感兴趣的:(es6)