class 类的用法

一、类的声明

class Student{ 
    // 构造器
    constructor(name,age){
        this.name=name;
        this.age=age;
    }
}

var s = new Student('乔巴',8)

对比我们之前使用构造函数的形式

 // 构造函数的方法
function Person(name,age){
    this.name=name;
    this.age=age;
}

二、类的实例方法

class Student{
    // 构造方法
    constructor(name,age){
        this.name=name;
        this.age=age;
    }
    run(){
        console.log(`一个${this.age}的小伙子在跑步`)
        this.born()  //this指向的是实例的对象
    }
    born (){
        console.log('实例方法 出生')
    }
}

类的实例方法内部可以使用this.的形式获取实例的属性,当然也可以通过this.的形式调用实例的其他方法

三、类的静态成员(静态属性,静态方法)

class Student{
    
    // 构造方法
    constructor(name,age){
        this.name=name;
        this.age=age;
    }
    run(){
        // console.log(`一个${this.age}的小伙子在跑步`)
        console.log('实例方法')
        this.born()  //this指向的是实例的对象
    }
    born (){
        console.log('实例方法 出生')
    }
    static born(){
        console.log('静态方法 出生')
    }
    static run(){
        console.log('静态方法')
        this.born() // this 执行类对象
    }
}
Student.maxAge = 200 //静态属性

注意:
1.类的静态成员包括:静态属性和静态方法
2.类的静态成员只有类能访问。
3.类的静态方法可以与实例的方法名字相同
4.类的静态属性只能通过Student.x = 'xxx';来定义;

四、类的继承

class Person{
     constructor(name){
        this.name= name;
     }
     static run(){
         console.log('父类的静态方法')
     }
     run(){
         console.log('父类的实例方法')
     }
 }
 class Student extends Person{
     constructor(name,grade){
        super(name)         
        this.grade = grade;
     }
     run(){
        super.run()     // 继承父级的实例方法
     }
 }
 let s = new Student('白星','3年级')

注意:
(1)// 必须在constructor调用 super()之后才能获取父级对象,才能操作this.否则报错 也可以 直接调用super()

你可能感兴趣的:(class 类的用法)