类的声明与构造
class声明
constructor构造
// 声明类
class Animal {
// construcor 构造
constructor(name, age) {
}
}
this指向
this指向实例化对象
自定义方法 this指向实例化对象
静态方法: this指向当前类 必须通过类调用
class Animal {
// construcor 构造
constructor(name, age) {
this.name = name
this.age = age
this.eat = function () {
// this指向实例化对象
console.log('爱吃零食');
console.log(this);
}
}
//自定义方法 this指向实例化对象
getName() {
console.log(this);
}
setName(value) {
console.log(value);
}
// 静态方法: this指向当前类 必须通过类调用
static getAge() {
console.log(this);
}
}
var animal = new Animal('喵咕老师', '2000岁')
console.log(animal);
console.log(animal.name);
console.log(animal.age);
console.log(animal.eat);
animal.eat()
animal.getName()
console.log(animal.name);
animal.setName('夏目家的猫')
console.log(animal.name);
Animal.getAge()
ES6使用extends关键字来实现子类继承
继承关键字 super
class Dog extends Animal {
constructor(name, age, color) {
// this.name = name
// this.age = age
// 继承关键字 super
super(name, age)
this.color = color
}
}
var dog = new Dog('旺财', 2, 'black')
console.log(dog);
console.log(dog.name);
dog.eat()
dog.getName()
dog.getNameDog()