ES6类和函数原型都有contructor
,但我想知道它们是否相同?让我给出更多解释。
所以,我创建一个Cat函数,例如:
const Cat = function (name) {
this.name = name;
};
Cat有以下原型:
如果输入smth,则constructor
可能会丢失。比如Cat.prototype = {};
,但new Cat('Name');
会继续有效。
我们在ES6中有以下语法:
class Dog {
constructor(name) {
this.name = name;
}
}
该类还有constructor
,它看起来就像一个简单的函数。由于类只是原型继承的语法sygar,Dog类中的构造函数是否与Cat函数中的相同,或者这些是不同的概念?
答案 0 :(得分:2)
由于类只是原型继承的语法糖,Dog类中的构造函数是否与Cat函数中的相同?
是的,构造函数 - 原型关系仍然有效。
但有一些差异,例如Dog.prototype
不可写,Dog
只能使用new
调用。