如上图,实例p1
和p2
的__proto__
指向同一个原型对象Person.prototype
,
执行p1.age=12
,为啥p1.age
没跟着变成12
,而还是原来的0
如上图,实例p1
和p2
的__proto__
指向同一个原型对象Person.prototype
,
执行p1.age=12
,为啥p1.age
没跟着变成12
,而还是原来的0
p1.age = 12
实际上是给p1
添加了一个值为12的属性age
,访问p1.age
时会直接访问到这个属性而不会去原型链上找age
,如果要实现p1 p2都被改变,可以这么写 p1.__proto__.age = 12
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
p1.age并不会改变原型的值,p2没有age属性,会顺着原型链向上找,找到Person里面age,所以p2.page就是等于Person.prototype.age