为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

假假爱看书的人 2017-09-28 10:58:19
用push在一个实例中添加项,而第二个实例的属性也会跟着改变。因为是引用类型值,我懂。但是不用push,直接改变实例1的属性值,实例2不会发生改变?
查看完整描述

3 回答

?
cnyballk

TA贡献148条经验 获得超93个赞

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

查看完整回答
反对 回复 2017-09-28
?
橋本奈奈未

TA贡献436条经验 获得超108个赞

//img1.sycdn.imooc.com//59cc68510001fe4803890266.jpg

控制台打印下结构大概应该能懂吧?

对象属性的访问是会沿着原型链查找,找到了age是在sub的原型上,所以push会影响所有实例,而重新赋值会将属性绑定到this对象也就是例子中的box2。

原型链和this算是JS里比较绕,容易搞错的,多找找网上的帖子看看。

查看完整回答
反对 回复 2017-09-28
  • 3 回答
  • 1 关注
  • 1883 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信