Javascript中是否可以声明多个变量,如下所示?
var foo = bar = "Some value";
答案 0 :(得分:5)
除非你知道你正在创建一个全局变量(无论如何,这通常被认为是不好的做法),所以不行。
如果你来自像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 值的一个对象上的任何方法也会为另一个对象更改它。
发生了什么:每次 bullet 对象垂直移动屏幕(改变它应该是它自己的 posY )时,播放器对象将被传送到 bullet 的Y坐标。
通过简单地将变量声明分离为:
来解决var posX = 0;
var posY = 0;