在 Javascript 中可以如下声明多个变量吗?
var foo = bar = "Some value";
除非您知道您正在创建一个全局变量(无论如何,这通常被认为是不好的做法),否则这是不行的。
如果您来自 Java 之类的语言,那么很自然地会执行以下操作:
int foo = bar = 0;
变量foo和bar都将在当前范围内初始化为值 0。但在 Javascript 中:
var foo = bar = 0;
将在当前范围内创建变量foo和一个全局变量bar。
在理解我的错误之前,我正在调试我正在编写的游戏大约一个小时。我有一个像这样的代码:
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;