繁体   English   中英

JS:class.prototype.constructor和class.constructor之间有区别吗

[英]JS: Is there a difference between class.prototype.constructor and class.constructor

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

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功能。

当你做的时候

user.prototype={},

您实际上是在创建新对象。 所以会的

user.prototype=new Object()

并且其构造函数将更改为Object,因此将构造函数保留为用户对象

 constructor: User

构造函数是原型的属性。 要从类用户调用构造函数,您需要创建类用户的新实例,然后才可以直接使用构造函数属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM