Node开发(八)Class类

发布时间 2023-09-28 16:50:19作者: 漫思

在ES5使用构造函数来创建对象(一直在使用函数来模拟对象)

ES6中,引入class关键字,可以使用class来定义类

一、Class简介

1.什么是类?
类是用来描述具有一些共同的特性和行为的事物
类由属性和方法组成
2.什么是对象?
对象是类的实例
3.class

  class Student {
        constructor(no, name, age) {
            this.no = no;
            this.name = name;
            this.age = age;
        }

        study(){
            console.log('学习中....');
        }
    }

    let s=new Student('1000','李四',18);
    console.log(s);

4.Constructor
每一个类都有一个构造器(若没有显示的声明构造器,则系统会自动添加一个无参的构造器)

构造器不能被主动调用,构造器在class被实例化(new)的时候,会自动的执行

5.成员属性和成员方法
成员属性就是实例的属性
成员方法就是实力的方法
6.静态属性和静态方法
静态属性是类的属性
静态方法是类的方法
 

   class Student {
        //静态属性
        static hands = '两只手';
        //成员属性
        constructor(no, name, age) {
            this.no = no;
            this.name = name;
            this.age = age;
        }
        //成员方法
        study() {
            console.log('学习中....');
        }

        //静态方法
        static test() {
            console.log('考试中....');
        }
    }

二、继承

在ES6中使用extends关键字来实现继承

继承是单向的(单向,单继承)
父类(基类/超类)
子类(派生类)

  class Person {
        constructor(name, age) {
            this.name = name;//成员属性
            this.age = age;
        }

        say() {
            console.log(`${this.name} 在说话....`);
        }
    }

    //子类

    class Student extends Person {
        constructor(name,age,no){
            super(name,age);//调用父类的构造器
            this.no=no;
        }

        test(){
            console.log('考试中');
        }
    }

Super关键字:
有两个用法:
用法一:在子类的构造函数中通过调用super()来调用父类的构造器(必须在子类的构造器的第一行调用super方法)

用法二:在子类中,可以通过super关键字调用父类的内容