function person(){
this.x = 100;
}
person.prototype.y = 200;
var p1 = new person();
var p2 = new person();
++p1.y;
console.log(p1.y);
console.log(p2.y);
当我输出 p2.y 时,根据我的理解,我应该得到输出 201,因为 y 存储在 person 的原型(prototype)中。为什么我会得到 200?
最佳答案
y is stored in prototype of person
不完全是。分配一个属性,例如 ++p1.y
( p1.y = p1.y + 1
),在对象 p1
上创建自己的属性。 person.prototype.y
属性保持值 200
。你需要做
++person.prototype.y;
更新两个实例继承的属性。
关于javascript - 当我输出 p1.y 时,根据我的理解,我应该得到输出 201,因为 y 存储在 person 的原型(prototype)中。为什么我得到200?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50428410/