天天看点

JavaScript面向对象编程——类(笔记)

新的关键字

class

从ES6开始正式被引入到JavaScript中。

class

的目的就是让定义类更简单。

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

    hello() {
        alert('Hello, ' + this.name + '!');
    }
}
var xiaoming = new Student('小明');
xiaoming.hello();
           

继承

class

定义对象的另一个巨大的好处是继承更方便了,直接通过

extends

来实现:

class PrimaryStudent extends Student {
    constructor(name, grade) {
        super(name); // 记得用super调用父类的构造方法!
        this.grade = grade;
    }

    myGrade() {
        alert('I am at grade ' + this.grade);
    }
}
           

ES6引入的

class

和原有的JavaScript原型继承有什么区别呢?实际上它们没有任何区别,

class

的作用就是让JavaScript引擎去实现原来需要我们自己编写的原型链代码。简而言之,用

class

的好处就是极大地简化了原型链代码。

继续阅读