如何使用局部变量更改全局变量

时间:2019-01-07 22:09:15

标签: javascript dom parameters global local

我正在尝试为我的网站创建一个简单的递增函数,该函数将处理要以不同值递增的几个不同值。我想编写一个全局函数,它将使我不必为将要递增的每个值进行硬编码。

当手动指定全局变量时,它可以正常工作,但是对于此项目,我将需要更改许多变量,因此这不是一个选择。是否可以将这些值返回到全局变量,而不必手动指定要将其返回到哪些变量?

public IActionResult SomeCondition()
{
    if(!someCondition)
    {
        return _api2.YourMethod1();
    }
    else
    {
         return _api2.YourMethod2();
    }
}

我希望每当调用该函数时,MineralTarget都会增加1,但它保持不变。

1 个答案:

答案 0 :(得分:0)

Javascript通过值传递数字,这意味着在您的函数中,您总是在递增原始变量的副本,而不会将更改反映回来。

但是,数组和对象是通过引用传递的。如果设置对象的属性,则应该可以实现所需的功能。试试这个:

let minerals = {
  "value": 200,
  "target": document.querySelector("#minerals"),
  "gain": 1
}

function gain (mineral) {
  mineral.value += mineral.gain;
  mineral.target.innerHTML = mineral.value;
}

window.setInterval(function () {
  gain(minerals);
  console.log(minerals.value);
}, 250);