Я создаю игру в javascript, и у меня есть несколько файлов. Основной файл game.js содержит var Game = {};
в начале, и, например, upgradedes.js содержит Game.Upgrades = {};
в начале. Теперь я использовал let item = Game.Upgrades;
в начале каждой функции, поэтому вместо выполнения Game.Upgrades.upgradeName.cost
каждый раз в этой функции, например, я бы делал item.upgradeName.cost
или даже let item = Game.Upgrades[key];
, если я зациклен через все обновления или если параметр functions передает ключ (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: {} };
Кроме того, если я объявлю const в файле upgradedes.js, поскольку он загружается после файла game.js, смогу ли я использовать этот const в файле game.js? Пока все работает хорошо, но разве это хорошая практика? Я знаю, что не могу сделать это с помощью let.
Должен ли я просто сложить все в своем главном файле game.js и начать все оттуда?
Все эти вещи с var, let и const серьезно меня запутывают. Я знаю, что должен избегать использования var, поэтому я использую его только для объявления своего объекта Game. Я использую функции let inside, но, поскольку все мои let
-с в основном являются вычислениями newCost или newDps, я решил изменить их все на const.
Есть идеи? Я использовал JSlint на днях со своим кодом, и это только дало мне больше головной боли.
Спасибо!