收藏
回答

变量作用域及执行顺序的问题

var post={};

post = this.data.info;

post.token=app.token;

post.positionname = post.position.positionname;

post.position = post.position.code;

//从头到尾没有改变过this.data.info的值,只是给post这个接收变量赋值了,但是结果打印的时候发现this.data.info的值都变得和post一样了

//求解答


//还有一个问题就是,代码从上到下的执行顺序,为什么:

var a=10;

console.log(a);

a=20;

//打印出来的是20,而不是10


最后一次编辑于  2018-04-27  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 卢霄霄
    卢霄霄
    2018-04-27

    新手常见错误,object 和 array 这俩类型赋值的时候,是给的地址。一般的类型是给的值。var a = {b:1},var c = a,c.b=2 ,console.log(a.b) ,打出来就是2

    2018-04-27
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-04-27

    如果是数组,可以用 array.concat()生成新的副本。如果是不带方法的数组或对象,也可用JSON.parse JSON.stringify 转一下

    2018-04-27
    赞同
    回复