自身属性和原型属性

来源:4-2 [JavaScript]创建对象、原型链

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


写回答 关注

3回答

  • 慕粉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 不是同一个 ,第二个 是同一个

    吃不胖很惆怅 回复Legili...

    自身有会覆盖,没有回取父级的

    2016-06-21 14:42:21

    共 2 条回复 >

JavaScript深入浅出

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

281102 学习 · 1020 问题

查看课程

相似问题