我试图了解var myObj = myObj || {};
的要点,并找到了解释它的this和this文章。但我仍然没有看到我需要它的情况。这些文章似乎解决了它的实际逻辑,因为它等同于a ? a : b
- 我明白了。
例如,我为我的游戏创建了HUD,
game.HUD = game.HUD || {};
game.HUD.Container = me.Container.extend({
//...
为什么我不能在不使用game.HUD = game.HUD || {};
的情况下创建对象?
答案 0 :(得分:3)
如果您确定需要初步确定game.HUD
,那么您就不需要使用您的代码段。
如果game.HUD
有可能保留您不想覆盖的先前值,那么您可以使用示例代码。
答案 1 :(得分:1)
这主要是安全的事情。你想要:
game.HUD
,无论之前是否已初始化game.HUD
已经已经初始化以保留 ,那么 分配的任何字段。如果game.HUD
已经存在,那么
game.HUD = {};
会清除分配给它的任何数据。
game.HUD = game.HUD || {};
如有必要,将初始化,否则将其单独留下,以便无论如何
game.HUD.Container = ...
作品。