function AAA() {
this.name = "AAA name";
}
function BBB() {
}
BBB.prototype = new AAA();
var bbb = new BBB();
var ccc = new BBB();
console.log(bbb.name); \\AAA name
console.log(ccc.name); \\AAA name
bbb.name = "111";
console.log(bbb.name); \\111
console.log(ccc.name); \\AAA name
这不是原型链继承吗?为什么修改了bbb.name
后,ccc.name
不一起改变呢?
在重新定义一个和原型链上名字一样的变量时,不是覆盖原型链上的变量,而是在自己的class里面新追加一个.
你改成这样
bbb.__proto__.name = "111";
或者
BBB.prototype.name = "111";
最后的两个就都打印出来111了.