问答详情
源自:4-2 [JavaScript]创建对象、原型链

自身属性和原型属性

想问两个结果输出的为什么不一样。

function foo(){}
foo.prototype.z = 5;
var obj = new foo();
obj.z = 7;

console.log(obj.z); //输出7
delete obj.z;
console.log(obj.z);//输出5
function foo(){
this.z = 5;
}
var obj = new foo();
obj.z = 7;

console.log(obj.z); //输出7
delete obj.z;
console.log(obj.z);//输出undefined


提问者:Legilimens 2016-06-15 14:23

个回答

  • 慕粉1440489053
    2017-04-20 01:03:42

    自己有了就不会在沿着原型链查找这个属性了

  • AsyncNooby
    2016-08-02 17:12:41

    <script>
    "使用porototype的时候,相当于是把Z放在另一个盘子共享出来;你使用this的时候,一new一个对象出来,同时也会把this.z也在对象里面,你重新给z赋值就会替换了自身的z";
    
    </script>


  • 吃不胖很惆怅
    2016-06-15 14:47:03

    第一个是 2个z 不是同一个 ,第二个 是同一个