JavaScript在ES6之前严格意义上是没有像JAVA,C#这种语言中类的概念的。ES6添加了class,但其实这个class也只是ES6以前的构造函数和原型的语法糖而已。要想真正了解JavaScript中最复杂的部分,就得从最初的构造函数和原型讲起。
类
在ES6以前,我们是这样实例化一个对象的:
首先声明一个构造函数,一般用首字母大写来区分构造函数和普通函数.
function Animal(name, age) {
this.name = name
this.age = age
}
接下来在构造函数的prototype上挂载公共方法
Animal.prototype.say = function () {
console.log(this.name)
}
最后实例化一个对象
const dog = new Animal('dog', 3)
dog.say() //会在控制台打印出dog
当我们使用ES6的class来声明上面这个类的话,代码如下
class Animal {
constructor(name, age) {
this.name = name
this.age = age
}
say() {
console.log