我有一个相当复杂的问题要问:)
我目前正在开发一个 html5 画布游戏。特定于游戏地图的变量位于一个单独的文件中(我们称之为 game.js),与游戏引擎(我们称之为 engine.js)分开。
我读过在 JS 中使用全局变量比使用局部变量要慢。因此,在 game.js 中,我创建了一个包含所有游戏特定变量的全局变量。在engine.js 中,我将此全局对象复制到局部变量中,然后删除此全局对象。
这是有效的。但我知道分配对象只会传递对这些对象的引用。
因此我的问题是:当我在初始化结束时删除全局对象时,它的性能是否就像我在engine.js中直接将所有变量声明为局部变量一样,还是会更慢,就像我的engine.js 中的局部变量只是对全局对象的引用?
我可以在 engine.js 中将所有变量声明为本地变量,但如果以后我想制作其他地图/游戏,分离特定于地图的内容对我很有用。
例如:
游戏.js:
Game = function() {
this.x = 16;
this.y = 16;
this.myObject = {"test": "hello", "action": "none"};
}
game = new Game();
引擎.js://...
var x = game.x;
var y = game.y;
var obj = {"test": game.myObject.test, "action": game.myObject.action};
//...
在这个例子中,x、y 和 obj 的性能会和局部变量一样快,还是更慢?
注意:我并没有真正检查全局变量和本地变量的性能之间的差异,但我认为我读到的内容是正确的。
希望我的问题足够清楚而不是愚蠢:)如果您有任何想法...谢谢!