Legilimens
2016-06-15 14:23
想问两个结果输出的为什么不一样。
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
自己有了就不会在沿着原型链查找这个属性了
<script> "使用porototype的时候,相当于是把Z放在另一个盘子共享出来;你使用this的时候,一new一个对象出来,同时也会把this.z也在对象里面,你重新给z赋值就会替换了自身的z"; </script>
第一个是 2个z 不是同一个 ,第二个 是同一个
JavaScript深入浅出
281102 学习 · 1020 问题
相似问题