var obj={x:1}之后var obj=new foo(); 那obj之前的x属性不是没有了吗??

来源:4-1 [JavaScript]对象概述

_十年

2016-12-12 10:27

var obj={x:1};

function foo(){};

foo.prototype.z=3;

cosole.log(obj.x);

console.log(obj.z);

obj的x属性不是应该没有了吗?

写回答 关注

2回答

  • A露露露
    2017-09-29 11:23:05

    如果想要达到老师所描述的效果的话,应该是这样的

    http://img1.mukewang.com/59cdbc910001832202990434.jpg

  • leong_min
    2016-12-12 14:43:43

    var obj={x:1};var obj=new foo();变量obj会被申明提前,按照JS的执行顺序,首先变量obj被赋值为一个对象,继续执行obj又被赋值为一个foo函数,自然而然就代替了之前被赋值的对象,故obj之前的X属性也会被覆盖


JavaScript深入浅出

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

281102 学习 · 1020 问题

查看课程

相似问题