ES6类基本用法
class 属性名(大驼峰命名法){constructor(){} 自定义函数 静态函数}
声明类 class
class Animal {
constructor(name,age) {
this.name = name
this.age = age
}
getName() {
console.log(this)
}
setName(value) {
console.log(value)
this.name = value
}
}
let dog = new Animal('狗',2)
console.log(dog)
console.log(dog.name)
dog.getName()
dog.setName('猫')
静态方法 static
class Animal {
constructor(name,age) {
this.name = name
this.age = age
}
getName() {
console.log(this)
}
setName(value) {
console.log(value)
this.name = value
}
// 静态方法:只能类去调用
static getAge() {
console.log(this)
}
}
let dog = new Animal('狗',2)
console.log(dog)
console.log(dog.name)
dog.getName()
dog.setName('猫')
console.log(dog)
console.log(dog.name)
// dog.getAge() //dog.getAge is not a function
console.dir(Animal)
Animal.getAge()
继承 extends
class Cat extends Animal {
constructor(name,age,color) {
// super指代的父类
super(name,age)
// 写在super下,因为this指向问题
this.color = color
}
getName_1() {
console.log('getName_1')
super.getName()
}
}
let cat = new Cat('加菲',3)
console.log(cat)
// cat.getName()
cat.getName_1()