javascript - 更新现有的 JavaScript 变量

标签 javascript

这可能是也可能不是一个简单的问题,因为我的 JavaScript 技能非常有限。我想做的就是修改函数中的变量,然后返回新的变量值,以便再次在函数中使用。

一个例子是一个简单的按钮,每次单击都会从变量中扣除 10 分。就像每次点击时逐渐倒计时一样。问题是变量不会在每次返回时更新。

也许我对 javascript 的开始方法已经出路了,这就是为什么我似乎无法找到很多关于此的信息。这是代码

<html>
<head>
<script type="text/javascript">

/*starting bank account*/
var bank = "200";
/* i want this function to deduct ten from the starting bank account and update the bank variable */
function Bank(bank) {
    var printout = document.getElementById("display_bank_result_here");
    bank = bank - 10;
    printout.innerHTML = bank;
    return bank;
}


</script>
</head>
<body>
<button onclick="Bank(bank)">remove 10 from bank</button>
<p id='display_bank_result_here'></p>
</body>
</html>

首先感谢大家。我希望有一天我能有足够的技能来报答处于我这个职位的其他人。

罗伯特

最佳答案

那是因为你shadowed变量bank

在函数 Bank 中,bank 变量指的是本地变量,而不是全局变量。一旦您使用函数的返回值来更新全局变量,这就不应该成为问题:

<button onclick="bank = Bank(bank)">remove 10 from bank</button>

当然,你也可以通过避免阴影来解决,例如:

function Bank () {
    var printout=document.getElementById("display_bank_result_here");
    bank -= 10;

    printout.innerHTML =bank;
}

那么就不需要return了。

此外,您可以完全避免使用全局变量,将起始值放入打印输出中:

<button onclick="decreaseBank()">remove 10 from bank</button>
<p id='display_bank_result_here'>200</p>

你的 JS 会是这样的:

function decreaseBank () {
    var printout = document.getElementById("display_bank_result_here");

    // with subtraction the value of `innerHTML` will be converted in Number
    // automatically.
    var bank = printout.innerHTML - 10;

    printout.innerHTML = bank;
}

希望有帮助。

关于javascript - 更新现有的 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11494202/

相关文章:

javascript - 使用closedxml从web api下载excel文件

javascript - 将字符串 "3[d2[e]]"转换为 "deedeedee"

javascript - 使用 jQuery 更改 jQuery Mobile "select"的高度?

javascript - 使用 jQuery 比较两个 Javascript 对象数组

javascript - 冗余和继承?

javascript - 从 json 菜单对象构建面包屑的递归函数

javascript - js脚本仅显示来自mysql数据库的真实 bool 值

javascript - 纯js中如何在变量名中使用多变量字符串

javascript - Cordova - 共享通用代码

javascript - 将 Moment.js 与 Twig 结合使用