javascript - JS : Is there a difference between class. 原型(prototype).构造函数和类.构造函数

标签 javascript constructor prototype

在我正在阅读的教程中,有一部分我不明白:

function User (theName, theEmail) {
    this.name = theName;
    this.email = theEmail;
    this.quizScores = [];
    this.currentScore = 0;
}
​
User.prototype = {
    constructor: User,
    saveScore:function (theScoreToAdd)  {
        this.quizScores.push(theScoreToAdd)
    },
    showNameAndScores:function ()  {
        var scores = this.quizScores.length > 0 ? this.quizScores.join(",") : "No Scores Yet";
        return this.name + " Scores: " + scores;
    },
    changeEmail:function (newEmail)  {
        this.email = newEmail;
        return "New Email Saved: " + this.email;
    }
}

我已阅读该帖子并检查了网络,但我不太明白,User.constructor 和 User.prototype.constructor 之间有区别吗? (如9号线)

最佳答案

User.constructor 设置User 实例的构造函数。 User.prototype.constructor 设置所有实例的构造函数。因此,如果您设置

User.prototype.constructor = function test(){};

然后

new User().constructor

也将是test函数。

关于javascript - JS : Is there a difference between class. 原型(prototype).构造函数和类.构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37586763/

相关文章:

javascript - 为什么我收到错误 : $injector:unpr Unknown Provider?

javascript - 使用 Web 通知 API 进行推送

C++,静态对象的构造函数中的异常绕过先前静态对象的析构函数

c++在派生类中使用来自基类的委托(delegate)ctor

javascript - 原型(prototype)链

Javascript 值从 Web 服务返回,但除非使用断点,否则不会显示

javascript - 如何使用ajax从文本字段中读取?

java - 什么时候在 Java 中必须有默认构造函数和参数化构造函数?

javascript - Javascript 中的原型(prototype)和非原型(prototype)继承(区别)

javascript - 如何创建一个新对象,并将其父类(super class)型的名称分配给变量?