ES6类中的构造函数与原型中的构造函数之间的区别?

时间:2018-04-12 17:58:11

标签: javascript class constructor prototypal-inheritance es6-class

ES6类和函数原型都有contructor,但我想知道它们是否相同?让我给出更多解释。

所以,我创建一个Cat函数,例如:

const Cat = function (name) {
    this.name = name;
};

Cat有以下原型: enter image description here 如果输入smth,则constructor可能会丢失。比如Cat.prototype = {};,但new Cat('Name');会继续有效。 我们在ES6中有以下语法:

class Dog {
    constructor(name) {
        this.name = name;
    }
}

该类还有constructor,它看起来就像一个简单的函数。由于类只是原型继承的语法sygar,Dog类中的构造函数是否与Cat函数中的相同,或者这些是不同的概念?

1 个答案:

答案 0 :(得分:2)

  

由于类只是原型继承的语法糖,Dog类中的构造函数是否与Cat函数中的相同?

是的,构造函数 - 原型关系仍然有效。

但有一些差异,例如Dog.prototype不可写,Dog只能使用new调用。