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

来源:4-1 [JavaScript]对象概述

嗨小二

2016-01-10 14:35

我想提一个问题:        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呢?

写回答 关注

2回答

  • 嗨小二
    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。

    ZTON

    对 等于前面那段代码没有写

    2016-07-07 22:39:16

    共 1 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281111 学习 · 1020 问题

查看课程

相似问题