gpt4 book ai didi

javascript - 我应该在js中的原型(prototype)中声明构造函数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:59 24 4
gpt4 key购买 nike

<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/

问题:

是否需要放置以下行:constructor: User,?如果我删除这条线,它仍然有效。

最佳答案

当我们使用 new 运算符或 {} 在 javascript 中创建新对象时,新创建对象的构造函数属性指向构造函数。在你的情况下:

firstUser = new User("Richard", "Richard@examnple.com"); 

firstUser.constructorUser。 这同样适用于您的 User.prototype。当您使用 {}User.prototype 创建新对象时,constructor 属性为 Object。当您放置 constructor: User 时,您只需将 constructor 属性从 Object 更改为 User,您的代码仍然有效。

关于javascript - 我应该在js中的原型(prototype)中声明构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com