<script>
function User (theName, theEmail) {
this.name = theName;
this.email = theEmail;
}
User.prototype = {
constructor: User,
changeEmail:function (newEmail) {
this.email = newEmail;
return "New Email Saved: " + this.email;
}
}
// A User
firstUser = new User("Richard", "Richard@examnple.com");
firstUser.changeEmail("RichardB@examnple.com");
</script>
这段代码取自这里:http://javascriptissexy.com/oop-in-javascript-what-you-need-to-know/
题:
是nessecerry放这一行:构造函数:用户,?如果我删除了这一行,它仍然可以工作.
最佳答案 当我们使用new运算符或{}在javascript中创建新对象时,新创建的对象的构造函数属性指向构造函数.在你的情况下:
firstUser = new User("Richard", "Richard@examnple.com");
firstUser.constructor是User.
您的User.prototype也是如此.当您使用{}为User.prototype创建新对象时,构造函数属性为Object.当您放置构造函数:User时,您只需将构造函数属性从Object更改为User,您的代码仍可正常工作.