嗨小二
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呢?
原来是这样啊,new完之后的对象就是全新的对象啊
因为你的obj根本就没有y属性呀。你new 得出来的这个obj是一个全新的对象,你前面写一个 var obj={},obj.y=2;这时obj是有y属性的,而你后面又是一个 var obj=new fn(); 这时这个obj就会覆盖掉前面的那个obj。
JavaScript深入浅出
281111 学习 · 1020 问题
相似问题