javascript - 实例属性与原型(prototype)属性

标签 javascript

在下面的代码中,

function Person(first, last, age) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
}

Person.prototype.planet = "Earth";

p1 = new Person("David", "Beckham", 39);
p2 = new Person("Lionel", "Messi", 30);

如果有多个实例 p1 p2使用构造函数 Person 创建, 然后

我如何理解属性的区别planet有属性(property)age ?添加属性 planet 会有什么不同?如this.planet在构造函数中Person ?

注:了解prototype属性(property)

最佳答案

考虑将来我们要更改所有实例共享的原型(prototype)属性的情况

function Person(first, last, age) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
}

Person.prototype.planet = "Earth";

p1 = new Person("David", "Beckham", 39);
p2 = new Person("Lionel", "Messi", 30);

console.log(p1.planet) // Earth

Person.prototype.planet = "Mars"

console.log(p1.planet) // Mars
console.log(p1.planet === p2.planet) // true
更改原型(prototype)上的一个属性将在所有情况下更改它

关于javascript - 实例属性与原型(prototype)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114191/

相关文章:

javascript - 检索 firebase 中所有用户的所有数据

javascript - 授权 header 不适用于 http GET 请求

javascript - 我可以在同一个命令中放置多个 jquery 选择器吗

javascript - excel文件到json的转换

JavaScript:接受名为 e 的参数的单击事件

javascript - 如何在点击导航链接后显示特定的div?

javascript - Internet Explorer 不显示元素

javascript - 在 AngularJS 中动态填充下拉列表

javascript - 检索没有名称或 ID 的元素

javascript - Reactjs:在JavaScript中,默认不绑定(bind)类方法