ES6中的类和对象

语法格式

  • 创建类:
    class 类名 {}

  • 创建实例:
    var xx = new 类名()
    类的构造函数:constructor
    class 类名 { constructor (xx) { this.xx = xx } // 只要new实例,就会自动调用这个函数,this指实例对象 }

  • 类的方法:
    class 类名 { 方法名 () {} }

  • 类的继承:子类可以继承父类的一切属性和方法
    class A {} class B extends B {}

  • super关键字
    调用父类的构造函数super()和普通函数super.父类函数()

  • 注意:

  1. 类没有变量提升,必须先定义类,再通过类实例化对象
  2. 类里面共有的属性和方法一定要加this使用
  3. this指向:在构造函数中,this指向创建实例的对象,在方法中,this指向调用该方法的调用者

类与对象demo

class User{
    constructor(name, password) { // 在构造函数中,this指向创建实例的对象
        this.name = name
        this.password = password
        this.login()
    }
    login(){
        // 在方法中,this指向调用该方法的调用者
        console.log(this.name + ' 登录')
    }
    logout(){
        console.log(this.name + ' 退出')
    }
    changePass(){
        console.log(this.name + ' 修改密码')
    }
}
// 实例化对象
const user = new User('macy', '123')
user.logout()

继承demo

class Student extends User{
    constructor(name,password){
        // super用于调用父类构造函数
        super(name,password)
        this.name = name
    }
    eat(){
        console.log(this.name + '---')
        // super用于调父类方法
        super.changePass()
    }
}
const stu = new Student('itmacy', '123')
// 调用自身方法
stu.eat()
// 调用父类方法
stu.logout()
posted @ 2022-07-14 15:22  itmacy  阅读(63)  评论(0编辑  收藏  举报