javascript - 获取其自己窗口内的骰子总数。并不是所有的 window

标签 javascript dom closures

我正在尝试创建一个骰子滚子游戏,它将所有骰子的 throw 加到总和中。我希望能够同时打开多个骰子滚轮。

我的问题是所有骰子都被加在一起,而不是每个单独的滚轮计算自己的骰子。

你会在这里明白我在这个 fiddle 中的意思: https://jsfiddle.net/txdq7upw/9/

我认为问题出在这段代码中,因为它采用了每个名为“dice”的元素:

function getSumDiceValue() {
var dice = document.getElementsByClassName("dice");
var diceTotal = 0;
for (var i = 0; i < dice.length; i++) {
  diceTotal += Number(dice[i].getAttribute("data-diceValue"));
};

return diceTotal;

};

我的猜测是,我需要以某种方式将骰子与它们自己的骰子滚轮关联起来,但我不知道如何去做。

我对 JavaScript 还很陌生,如果可以的话,我希望能提供一些代码示例。

最佳答案

你已经完成了所有的工作。只需在 getSumDiceValue() 中使用 diceWindowWrapper 变量而不是 document 来计算某个闭包中的骰子总和:

function getSumDiceValue() {
  var dice = diceWindowWrapper.getElementsByClassName("dice");
  // ...
}

您可以在文章 How do JavaScript closures work? 中阅读有关 JavaScript 闭包的更多信息。

关于javascript - 获取其自己窗口内的骰子总数。并不是所有的 window ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698023/

相关文章:

closures - 使用线程时的生命周期问题

multithreading - 无法在生成的线程中调用函数,因为它是 "does not fulfill the required lifetime"

javascript - 无法在从 html 实体创建的换行符上拆分文本区域

Javascript:如何声明非全局静态方法?

javascript - 如何在javascript中将日期mm/dd/yyyy转换为yyyy-mm-ddT00 :00:00. 000Z格式

javascript - 如何在javascript中检查一系列复选框中的任何一个是否被选中

javascript - 拖古拉已加载但不工作

html - 通过其计算属性查找元素(例如范围内的位置和大小)

javascript - Google maps API,根据id显示和隐藏标记

Javascript - 为什么用 IIFE 返回一个闭包?