gpt4 book ai didi

javascript - 了解对象构造函数中使用的原型(prototype)

转载 作者:行者123 更新时间:2023-11-29 21:58:24 25 4
gpt4 key购买 nike

我了解原型(prototype)可用于将属性扩展到其子项。但是我不明白为什么你想在主对象构造函数类本身中有一个“Object.prototype.property”?

在 Person 构造函数中,为什么 Person.prototype.name = "Nicholas"; VS this.name = "Nicholas";

 function Person(){

Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
};

var person1 = new Person();
var person2 = new Person();

person1.name = "Greg";
alert(person1.name); //"Greg" – from instance
alert(person2.name); //"Nicholas" – from prototype

最佳答案

在构造函数中设置原型(prototype)属性几乎肯定是错误的。原型(prototype)是所有子对象的共享状态。您可能想要在构造函数中更新原型(prototype)的唯一原因是您正在存储共享数据。例如,您可以递增一个计数器,或添加一个总和。但是您几乎不会期望在构造函数中的原型(prototype)上设置像“name”这样的简单字符串属性。

关于javascript - 了解对象构造函数中使用的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189394/

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