变量作用域及执行顺序的问题
发布于 6 年前 作者 yangyao 12305 次浏览 来自 问答

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

2 回复

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

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

回到顶部