Js中原型链的问题,求赐教!

用push在一个实例中添加项,而第二个实例的属性也会跟着改变。因为是引用类型值,我懂。
但是不用push,直接改变实例1的属性值,实例2不会发生改变?

假假爱看书的人
浏览 1884回答 3
3回答

cnyballk

桥本奈奈未说的就是了,访问实例的属性的时候会先查找自身有没有,如果没有就沿着原型链往上,所以你设置是直接设置在实例里,前面push是因为你访问的是原型,所以会影响到其他实例

橋本奈奈未

控制台打印下结构大概应该能懂吧?对象属性的访问是会沿着原型链查找,找到了age是在sub的原型上,所以push会影响所有实例,而重新赋值会将属性绑定到this对象也就是例子中的box2。原型链和this算是JS里比较绕,容易搞错的,多找找网上的帖子看看。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript