為啥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
原來是這樣啊,new完之后的對象就是全新的對象啊
2016-01-10
因為你的obj根本就沒有y屬性呀。你new 得出來的這個obj是一個全新的對象,你前面寫一個 var obj={},obj.y=2;這時obj是有y屬性的,而你后面又是一個 var obj=new fn(); ?這時這個obj就會覆蓋掉前面的那個obj。