![](/img/trans.png)
[英]Difference between constructor in ES6 class and constructor in prototype?
[英]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.