一、类的作用:可以创建对象、可以实现对象的继承
二、类与对象的关系:类是对象的模板、对象是类的实例化
三、类的创建流程
- /*
- 1、创建类 class 类名 {} 类名的首字母要大写
- */
- class Animal {
- // 2、构造方法:任何一个类都有一个构造器(构造方法),它是默认的。构造方法中的this指向实例化对象
- constructor(name, age) {
- this.name = name;
- this.age = age;
- this.eat = function() {
- console.log(`${this.name}会吃饭!`);
- }
- };
- // 4、自定义方法:通过实例化对象进行调用,this指向实例化对象
- getName() {
- console.log(`${this.name}`);
- }
- setName(name) {
- this.name = name;
- };
- // 5、静态方法:通过类进行调用,this指向当前的类,this.name就是类名
- static sleep() {
- console.log("我是一个静态方法");
- console.log(this);
- console.log(this.name);
- }
- }
- // 3、实例化对象
- let dog = new Animal("小狗", 3);
- console.log(dog);
- console.log(dog.name);
- console.log(dog.age);
- dog.eat();
- let cat = new Animal("小猫", 4);
- console.log(cat);
- console.log(cat instanceof Object);
- console.log(cat.__proto__);
- //
- // Animal.getName();
- dog.getName();
- dog.setName("Doggo是真狗");
- dog.getName(); //
- //
- // dog.sleep();
- Animal.sleep();
四、类的继承 class 子类 extends 父类 {}
- class Dog extends Animal {
- constructor(name, age, sex) {
- /* this.name = name;
- this.age = age; */
- super(name, age);
- this.sex = sex;
- this.playGame = function() {
- console.log(`${this.name}`);
- }
- }
- }
- let hsq = new Dog("哈士奇", 1, "公的");
- console.log(hsq);
- console.log(hsq.name);
- console.log(hsq.age);
- hsq.eat();
- console.log(hsq.sex);
- hsq.playGame();
- hsq.getName();
- hsq.setName("金毛");
- hsq.getName();
- Dog.sleep();
使用super有几个要注意的事项:
子类必须在constructor方法中调用super方法
调用super( ),才可以使用this,否则报错
以上就是关于类继承的介绍,重点在于关键字extends和super,尤其是super的理解和使用,大家需要理解透彻。