ES2015类和 ES5 函数构造函数之间有什么区别?
Topics
JAVASCRIPT
在GitHub上编辑
让我们首先看看每个例子:
// ES5 Function Constructorfunction Person(name) {this.name = name;}// ES2015 Classclass Person {constructor(name) {this.name = name;}}
对简单的构造函数来说,它们看起来相当相似。
构造函数中的主要差异是在使用继承时。 如果我们想创建一个Person
的子类 Student
类,并添加一个 "studentId "字段,这就是我们在上述基础上所要做的事情。
// ES5 Function Constructorfunction 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 Classclass Student extends Person {constructor(name, studentId) {super(name);this.studentId = studentId;}}
在 ES5 中使用继承要啰嗦得多,ES2015 版本更容易理解和记忆。