问答详情
源自:4-1 [JavaScript]对象概述

var obj={x:1}之后var obj=new foo(); 那obj之前的x属性不是没有了吗??

var obj={x:1};

function foo(){};

foo.prototype.z=3;

cosole.log(obj.x);

console.log(obj.z);

obj的x属性不是应该没有了吗?

提问者:_十年 2016-12-12 10:27

个回答

  • A露露露
    2017-09-29 11:23:05

    如果想要达到老师所描述的效果的话,应该是这样的

    http://img1.mukewang.com/59cdbc910001832202990434.jpg

  • leong_min
    2016-12-12 14:43:43

    var obj={x:1};var obj=new foo();变量obj会被申明提前,按照JS的执行顺序,首先变量obj被赋值为一个对象,继续执行obj又被赋值为一个foo函数,自然而然就代替了之前被赋值的对象,故obj之前的X属性也会被覆盖