ES6类和ES5函数构造函数之间的区别
在本文中,我们将讨论ES6类和ES5函数构造函数之间的区别。它们的目的都是创建新对象,但它们之间有一些差异。
ES6类构造函数: ES6类构造函数的工作方式与其他面向对象编程语言中的类构造函数相似。它们用于创建新对象。
Javascript
class User {
constructor(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
print() {
console.log(`{this.name} has an age of
{this.age} and gender of ${this.gender}`);
}
}
const Roy = new User('Roy', '19', 'Male');
Roy.print();
输出:
"Roy has an age of 19 and gender of Male"
ES5函数构造器: ES5函数构造器也用于创建对象。可以通过使用函数构造器来修改上面的示例。
Javascript
function User(name, age, gender) {
this.age = age;
this.name = name;
this.gender = gender;
this.print = function () {
console.log(`{this.name} has an age of{this.age}
and gender of ${this.gender}`);
};
}
const Roy = new User('Roy', '19', 'Male');
Roy.print();
输出:
"Roy has an age of 19 and gender of Male"
ES6类和ES5函数构造函数之间的区别:
| ES6类构造函数 | ES5函数构造函数 |
|---|---|
| 如上所述,ES6类构造函数通过将函数添加到原型(蓝图)上来创建对象。 | ES5函数构造函数也创建对象,并具有继承属性。 |
| 它确保开发者使用的 this 关键字指向开发者创建的对象。 | 任何函数都可以用作函数构造函数,主要关注可重复使用的对象创建代码。 |
| 它的语法类似于其他面向对象编程语言中的对象创建。 | 它的语法独特,通常在其他面向对象编程语言中找不到。 |
| 这可以说是构造函数函数的语法基础,并使用new运算符实例化对象。 | 这也使用new运算符对对象进行创建,但重点是对象如何被实例化。 |
极客教程