Javascript ES6类中的构造函数和原型中的构造函数有什么区别?

Javascript ES6类中的构造函数和原型中的构造函数有什么区别?,javascript,class,constructor,prototypal-inheritance,es6-class,Javascript,Class,Constructor,Prototypal Inheritance,Es6 Class,ES6类和函数原型都有一个构造函数,但我想知道它们是否相同?让我再解释一下 因此,我创建了一个Cat函数,例如: const Cat = function (name) { this.name = name; }; Cat具有以下原型: 如果我键入smth,此构造函数可能会丢失。比如Cat.prototype={},但新猫('Name')将继续工作。 Ang我们在ES6中有以下语法: class Dog { constructor(name) { this.na

ES6类和函数原型都有一个
构造函数
,但我想知道它们是否相同?让我再解释一下

因此,我创建了一个Cat函数,例如:

const Cat = function (name) {
    this.name = name;
};
Cat具有以下原型: 如果我键入smth,此
构造函数
可能会丢失。比如
Cat.prototype={},但
新猫('Name')将继续工作。
Ang我们在ES6中有以下语法:

class Dog {
    constructor(name) {
        this.name = name;
    }
}
该类还具有
构造函数
,它看起来就像一个简单的函数。既然类只是原型继承上的一个语法sygar,那么Dog类中的构造函数与Cat函数中的构造函数是相同的还是不同的概念

既然类只是原型继承上的一个语法糖糖,那么Dog类中的构造函数是否与Cat函数中的构造函数相同

是的,构造函数与原型的关系仍然是一样的

不过也有一些区别,例如
Dog.prototype
是不可写的,
Dog
只能用
new
调用