在我正在阅读的教程中,有一部分我不明白:
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行一样)
答案 0 :(得分:1)
User.constructor
设置User
实例的构造函数。 User.prototype.constructor
设置所有实例的构造函数。因此,如果你设置
User.prototype.constructor = function test(){};
然后
new User().constructor
也将是test
函数。
答案 1 :(得分:1)
当你做的时候
user.prototype={},
您实际上是在创建新对象。所以它将是
user.prototype=new Object()
并且它的构造函数将更改为Object,因此要将构造函数保留为用户对象
constructor: User
和构造函数是原型的属性。要从类用户调用构造函数,您需要创建类用户的新实例,然后才能直接使用构造函数属性