实例:通过p1创建的p2,p1里面的属性更改后,p2会改吗


function Person() {
 name = 1;
}
let p1 = new Person();
p1.name = '小花';
let p2 = Object.create(p1)
p2.name
# 小花
p1.name = '谢小花';

p2.name
# 谢小花
----------------以上情况是 p2对象没有自己的name属性,调用的上级prototype链条里面的name
----------------下面的情况是,p1和p2各自都有自己的name属性,这种情况下就,互不干涉了。
p2.name = '小明'
p2.name
#小明
p1.name
# 谢小花

---------- 以此类推,
p2的prototype就是p1, p1修改 = p2的prototype修改。

这就是prototype chain, 原型链。 通过Object.create()创建的原型链, 父对象成为子对象的原型
阅读量: 208
发布于:
修改于: