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

为啥new完之后,再去访问obj.y就是undefined呢?

我想提一个问题:        var obj={}; obj.x=1; obj.y=2; console.log(obj);//{x: 1, y: 2} console.log(obj.y);//2 function fn(){}; fn.prototype.z=3; var obj=new fn(); console.log(obj.z);//3 console.log(obj.y);//undefined 为啥new完之后obj.y就是输出undefined呢?

提问者:嗨小二 2016-01-10 14:35

个回答

  • 嗨小二
    2016-01-10 17:00:46

    原来是这样啊,new完之后的对象就是全新的对象啊

  • 李晓健
    2016-01-10 15:02:17

    因为你的obj根本就没有y属性呀。你new 得出来的这个obj是一个全新的对象,你前面写一个 var obj={},obj.y=2;这时obj是有y属性的,而你后面又是一个 var obj=new fn();  这时这个obj就会覆盖掉前面的那个obj。