adr*_*eld 5 javascript variable-initialization
在Javascript中可以声明多个变量如下吗?
var foo = bar = "Some value";
Run Code Online (Sandbox Code Playgroud)
除非你意识到你正在创建一个全局变量(无论如何,这通常被认为是不好的做法),但这并不好.
如果你来自像Java这样的语言,那么做以下事情是很自然的:
int foo = bar = 0;
Run Code Online (Sandbox Code Playgroud)
变量foo和bar都将使用值0初始化,两者都在当前范围内.但在Javascript中:
var foo = bar = 0;
Run Code Online (Sandbox Code Playgroud)
将在当前作用域内创建变量foo和全局变量栏.
在理解我的错误之前,我正在调试我正在写一个小时的游戏.我有一个像这样的代码:
function Player() {
var posX = posY = 0;
}
function Bullet() {
var posX = posY = 0;
}
var player = new Player;
var bullet = new Bullet;
Run Code Online (Sandbox Code Playgroud)
变量posY是全局的.更改posY值的一个对象上的任何方法也将更改另一个对象的方法.
发生了什么:每当子弹物体垂直移动通过屏幕(改变它应该是它自己的位置)时,玩家物体将被传送到子弹的Y坐标.
通过简单地将变量声明分离为:
var posX = 0;
var posY = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |