如果我设置原型值并制作两个实例
然后在一个实例中更新原型值
现在其他实例原型值没有更新,为什么?
代码是
var A = function() {
}
A.prototype.u = 2;
var a = new A();
var b = new A();
a.u = 4
alert(a.u) // 4
alert(b.u) // 2
Run Code Online (Sandbox Code Playgroud)
它是如此不合理,它的原型价值不是这个价值.对?
您不是"更新原型值".您正在将新值写入本地对象而不是原型链.本地财产掩盖了链条上方的那个.
alert(a.u);看a,找到u并提醒它.
alert(b.u);看着b,找不到u,查找原型链,找到u并提醒它.
相比:
var A = function() {
}
A.prototype.u = 2;
var a = new A();
var b = new A();
a.u = 4;
A.prototype.u = 6;
alert(a.u);
alert(b.u);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |