我需要帮助我的项目。我正在使用ESM(而不是CJS)创建Node.js CLI游戏。
在我的randomHealth.js
文件中,我有一个生成随机数的函数:
let randomHealth = () => {
return Math.floor(Math.random() * 300 + 1)
}
export default randomHealth
在我的stats.js
文件中,我需要导入并显示这个数字。但是,我需要在那里进行修复,因为我需要在另一个文件中使用相同的数字:
import random from "./random/random.js"
import randomHealth from "./random/randomHealth.js"
let stats = () => {
console.log("STATS")
let playerHealth = randomHealth()
console.log("Health - " + playerHealth)
}
export default stats
我将它存储在一个playerHealth
变量中,因为我需要获取生成的那个数字。
现在,我需要另一个文件fight.js
中的变量来使用它。如果我调用randomHealth()
,它只会生成一个新的数字,我需要一个已经在stats.js
文件中生成的数字。如何从stats.js
中获取该数字,以便在fight.js
中使用它?
我试过导出该变量并将其导入到fight.js
中,但一旦我执行console.log()
,它就会显示 * undefined *。我尝试了许多不同的操作,但都没有成功。它返回 * undefined 、 NaN * 或者什么都没有。我还试过立即将其存储到randomHealth.js
中的一个变量中,然后显示它。但这也不起作用。如果我在randomHealth.js
中执行console.log
,那么当我想在另一个文件中显示它时,我需要再次执行此操作,而双console.log
显示 * undefined *。如果我不执行此操作,t到randomHealth.js
中的console.log
,那么它总是重新生成一个新的随机数,我需要在stats.js
中显示的数字,以便在fight.js
中使用。
有什么想法吗?这只是我的想法,如果有一个更好的方法来做到这一点,存储在一个变量在stats.js
然后无论如何告诉我。
先谢了。
2条答案
按热度按时间dced5bon1#
你的问题是每次调用***randomHealth()***,你都重新定义了健康点。为了修补它,我建议你把值存储在函数之外,然后导出它们。
统计数据. js:
main.js
现在你可以只使用导出的HP,也许你应该在同一个脚本中创建修改HP的函数,这样你就可以在同一个脚本中集中所有相关的函数,使它更干净,更容易使用。
希望对你有帮助
rbpvctlc2#
尝试导出
randomHealth
函数的结果: