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

关于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 关注
  • 953 浏览

添加回答

举报

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