我在 javascript 中制作了一个蛇游戏,并在 window.onload 函数中创建了对象和游戏循环。
window.onload = function() { ... Code ... };
现在我想知道我在函数范围内创建的对象是否被有效使用?使用这两种声明有什么区别?
1:
var Snake = {
x: null,
y: null,
initialize: function(x, y) { this.x = x; this.y = y },
position: [x, y],
move: function(x, y) { ... Code ... }
}
2:
function Snake(x, y) {
this.x = x;
this.y = y;
this.position = function() { return [this.x, this.y]; };
this.move = function(x, y) { ... Code ... };
}
我目前使用 1: 案例并从window.onload
函数范围调用对象,例如它看起来像这样:
Snake.initialize(x, y);
while(some condition) {
Snake.move(x++, y);
}
and so on...
内存分配是否存在差异,是否存在一些性能问题?