使用变量设置变量后,更改第一个变量还会更改第二个吗?

时间:2019-02-03 06:42:18

标签: javascript function var overwrite

首先知道我对Java还是很陌生。我想知道为什么当我运行此脚本时可以成功地将newVar设置为修改后的baseVar,但是如果我重复使用相同的baseVar变量,即使不更改newVar本身,它也会更改newVar。

var newVar = 0;
var baseVar = {number: 0,};

function generateNumber() {
  var number = Math.round(Math.random() * 50);
  baseVar.number = number;
  console.log(baseVar);
}

generateNumber();
newVar = baseVar;
console.log(newVar);
generateNumber();
console.log(newVar);

如果我运行函数两次,则第一个时间为2,第二个时间为37,我希望输出读取...

[object Object] {
  number: 2
}
[object Object] {
  number: 2
}
[object Object] {
  number: 37
}
[object Object] {
  number: 2
}

但是我得到的是...

[object Object] {
  number: 2
}
[object Object] {
  number: 2
}
[object Object] {
  number: 37
}
[object Object] {
  number: 37
}

0 个答案:

没有答案