gpt4 book ai didi

javascript - 在 Javascript 中调用函数而不输入其参数

转载 作者:行者123 更新时间:2023-12-02 15:43:25 24 4
gpt4 key购买 nike

我正在尝试创建一个名为 PIG 的老式骰子游戏的 JavaScript 版本。它涉及掷骰子并记录每次掷骰子的总和。我需要能够将每个掷骰保存在函数中,然后能够调用该函数以返回当前的掷骰分数。

<小时/>

该方法获取当前卷的amount并将其存储到变量total中,随后返回当前total变量。

  function rollTotal(amount) {
return amount;
}
<小时/>

我首先调用该函数并将骰子掷出的分数插入到 amount 参数中...

var dieOne = 1;
var dieTwo = 2;
rollTotal(dieOne + dieTwo);
<小时/>

然后我调用该函数来返回当前分数,如下所示...

rollTotal()
<小时/>

我得到了这个...

undefined
<小时/>

有没有办法设置一个默认参数,调用时不输入参数就返回当前分数?

最佳答案

当您调用函数并且不提供参数时,该参数将在函数内绑定(bind)到 undefined。所以你可以做这样的事情:

var currentAmount = undefined; // or perhaps 0?
function rollTotal(amount) {
if (typeof(amount) === 'undefined') {
return currentAmount;
} else {
currentAmount = amount;
return amount;
}
}

您可以使用闭包更优雅(更安全)地做到这一点:

var rollTotal = (function() {
var currentAmount = undefined;
return function(amount) {
if (typeof(amount) === 'undefined') {
return currentAmount;
} else {
currentAmount = amount;
return amount;
}
};
}());

您可能还想对参数进行更可靠的测试,并将任何非数字视为未定义。您可以通过以下测试来做到这一点:

!isNaN(parseFloat(amount)) && isFinite(amount)

而不是专门针对未定义进行测试。

编辑:正如 @Paul S. 指出的,关于是否传递参数的最佳测试是 arguments.length === 0

关于javascript - 在 Javascript 中调用函数而不输入其参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com