关于Javascript变量初始化的建议
这个问题在这里已经有了答案:
除非你知道你正在创建一个全局变量(无论如何,这通常被认为是不好的做法),但这并不好。
如果你来自Java这样的语言,那么很自然的做一些事情:
int foo = bar = 0;
在当前范围内,两个变量foo和bar都将使用值0初始化。 但在Javascript中:
var foo = bar = 0;
将在当前作用域和全局变量栏内创建变量foo。
问题
我正在调试我正在写一个小时左右的游戏,然后才明白我的错误。 我有一个代码:
function Player() {
var posX = posY = 0;
}
function Bullet() {
var posX = posY = 0;
}
var player = new Player;
var bullet = new Bullet;
变量posY是全球性的。 对一个对象改变posY值的任何方法也会改变其他对象的方法。
发生了什么:每当一个子弹对象垂直移动通过屏幕(改变它自己的posY)时,玩家对象将被传送到子弹的Y坐标。
通过简单地将变量声明分隔为:
var posX = 0;
var posY = 0;
链接地址: http://www.djcxy.com/p/69975.html
上一篇: Advice on Javascript variable initialization
下一篇: Proper way of multiple variable assignment in Javascript