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

关于Object.create()与原型链的面试题?

关于Object.create()与原型链的面试题?

沧海一幻觉 2018-07-31 21:23:32
一:var obj1 = {name:'one'}; obj2 = Object.create(obj1); obj2.name = 'two'; console.log(obj1.name);//one二:var obj1 = {prop:{name:'one'}}; obj2 = Object.create(obj1); obj2.prop.name = 'two'; console.log(obj1.prop.name);//two三:var obj1 = {list:['one','one','one']}; obj2 = Object.create(obj1); obj2.list[0] = 'two'; console.log(obj1.list[0]);//two为什么后面两段代码修改的是原型链上的属性呢?问题是,为什么二、三中的代码不是像代码一中直接给obj2添加属性,而是修改了原型链上的属性?求解释下一、二、三的结果?
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

obj2 = Object.create(obj1)是把obj1作为obj2的原型,所以obj2访问的是原型链的属性

查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 1013 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号