obj.propName=value的赋值语句处理步骤如下:

1.如果propName的attribute设置为不能设值,则返回

2.如果obj.propName不存在,则为obj创建一个属性,名称为propName

3.将obj.propName的值设为value

 

可以看到,设值的过程并不考虑Prototype链,道理很明显,obj内部的_proto属性是一个实例化的对象,它不仅向obj共享属性,还可能向其他对象共享属性,修改它可能影响其他对象。