首页 > 解决方案 > 使用变量设置变量后,更改第一个变量也更改第二个?

问题描述

首先知道我对 Javascript 很陌生。我想知道为什么当我运行这个脚本时,我可以成功地将 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
}

标签: javascriptfunctionvaroverwrite

解决方案


推荐阅读