Enjoy 20% off all plans by following us on social media. Check out other promotions!
测验题

ES2015类和 ES5 函数构造函数之间有什么区别?

Topics
JAVASCRIPT
在GitHub上编辑

让我们首先看看每个例子:

// ES5 Function Constructor
function Person(name) {
this.name = name;
}
// ES2015 Class
class Person {
constructor(name) {
this.name = name;
}
}

对简单的构造函数来说,它们看起来相当相似。

构造函数中的主要差异是在使用继承时。 如果我们想创建一个Person 的子类 Student 类,并添加一个 "studentId "字段,这就是我们在上述基础上所要做的事情。

// ES5 Function Constructor
function Student(name, studentId) {
// Call constructor of superclass to initialize superclass-derived members.
Person.call(this, name);
// Initialize subclass's own members.
this.studentId = studentId;
}
Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
// ES2015 Class
class Student extends Person {
constructor(name, studentId) {
super(name);
this.studentId = studentId;
}
}

在 ES5 中使用继承要啰嗦得多,ES2015 版本更容易理解和记忆。

在GitHub上编辑