一、类的声明
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()