首页 > 解决方案 > 多文件申报顺序

问题描述

我正在用 javascript 构建游戏,并且我有多个文件。主文件 game.js 包含var Game = {};在开头,例如 upgrades.js 包含Game.Upgrades = {};在开头。现在,我以前let item = Game.Upgrades;在每个函数的开头都做,所以不是Game.Upgrades.upgradeName.cost每次都在那个函数中做,例如,我会做item.upgradeName.cost,或者即使let item = Game.Upgrades[key];我正在循环所有升级,或者如果函数参数传递key ( function buyUpgrade(key) where key = upgradeName),所以现在我可以打电话item.cost;并节省一些打字时间。

现在我在想,为什么要let item = Game.Upgrades;在每个函数中声明,而我只能在 之后声明一次,Game.Upgrades = {};所以我确实const UPG = Game.Upgrades;在声明 Upgrades 对象后立即添加。所以现在我可以UPG.upgradeName.cost;在我的代码中使用每次,而不必let item = Game.Upgrades;在每个函数中都做。这将是一个更好的解决方案,对吧?因为每个声明都使用一点内存,对吧?

奇怪的是,如果我在主文件const UPG = Game.Upgrades;下面声明var Game = {};,它就不起作用......但是,当它在下面声明时Game.Upgrades = {};,这让我感到困惑,因为Game.Upgrades = {};基本上只是Game = { Upgrades: {} };

另外,如果我在 upgrades.js 文件中声明 const,因为它是在 game.js 文件之后加载的,我可以在 game.js 文件中使用该 const 吗?现在它工作正常,但这是一个好习惯吗?我知道我不能用 let 做到这一点。

我是否应该将所有内容都堆积在我的主 game.js 文件中并从那里开始所有内容?

所有这些与 var、let 和 const 相关的东西都让我很困惑。我知道我应该避免使用 var,因此我只用它来声明我的 Game 对象。我使用 let 内部函数,但由于我所有的let-s 基本上都是 newCost 或 newDps 计算,我想我也会将它们全部更改为 const。

有什么见解吗?前几天我在我的代码中使用了 JSlint,它只会让我更加头疼。

谢谢!

标签: javascriptdeclaration

解决方案


推荐阅读