2023.3.4 class

54 阅读1分钟

什么是javaScript类,其实就是构造函数的语法糖。

//早期定义一个类
function From (from, to) {
//为新对象定义from和to两个状态
//this指向生成的新对象
    this.from = from;
    this.to = to;
}

//给构造函数定义方法,这些方法写在prototype上,可以让新对象继承(这相当于重写了From的原型对象)
From.prototype = {
    include() {
        return from > to ? console.log(`${from} 大于 ${to}`) : console.log(`${from} 小于等于 ${to}`);
    }
}

var newFrom = new From(0, 10);
console.log(newFrom.from, newFrom.to); //=>0, 10
console.log(newFrom.include());//=> 0 小于等于 10

这是早期定义一个类的基本方法,es6定义了class关键字,可以用来声名一个javaScript类。

//用class定义一个类
class Person{
//这个构造函数会在实例化Person类时执行。
    constructor(name, age){
        this.names = names;
        rhis.age = age;
    };
    //这是添加在构造函数的原型对象身上的方法
    add() {
        console.log("running_yong");
    }
}

类的继承,用extends关键字

    class Teacher {
        learn(){console.log("学习的方法")}
    }
    
    class Students extends Teacher {
        //只要继承语法写了,就得在构造函数里执行超类super
        constructor(){
            super();
        }
    }
    
    let student = new Stidents();
    student.learn();

这段代码会在控制台打印"学习方法",这说明Stidents类继承了Teacher,这才可以使用Teacher原型中的方法。类中还有静态方法,需要用static修饰。它只供类自己使用。

class Utils {
    static add() {
        console.log("running_yong")
    }
};

let utils = new Utils();
//访问不到,只有Utils.add才可以访问到add方法。
utils.add();