猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Js中原型链的问题,求赐教!
用push在一个实例中添加项,而第二个实例的属性也会跟着改变。因为是引用类型值,我懂。
但是不用push,直接改变实例1的属性值,实例2不会发生改变?
假假爱看书的人
浏览 1884
回答 3
3回答
cnyballk
桥本奈奈未说的就是了,访问实例的属性的时候会先查找自身有没有,如果没有就沿着原型链往上,所以你设置是直接设置在实例里,前面push是因为你访问的是原型,所以会影响到其他实例
0
0
0
橋本奈奈未
控制台打印下结构大概应该能懂吧?对象属性的访问是会沿着原型链查找,找到了age是在sub的原型上,所以push会影响所有实例,而重新赋值会将属性绑定到this对象也就是例子中的box2。原型链和this算是JS里比较绕,容易搞错的,多找找网上的帖子看看。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续