1

我不明白这里到底发生了什么,这似乎是一个语法问题。以防万一它可能会有所帮助,我对 Javascript 很陌生,但我有使用 AS3 的经验。

在此代码上:

https://github.com/mrdoob/three.js/blob/master/examples/canvas_lines.html

第 34 行是:

camera, scene, renderer;

我假设这些是全局范围内的变量声明,并且在第 42 行,这些也是变量声明,但在 init() 函数的范围内。

第 42 行:

particles, particle;

玩弄一下该代码,我意识到如果我像这样在全局范围内声明粒子对象,则脚本不起作用,但如果我像这样使用它,它就会起作用:

var particle;

如果我删除第 42 行,它也能很好地工作。

为什么它会这样工作?这是怎么回事?

谢谢

4

3 回答 3

1

这段代码的格式很差(恕我直言)。没有说清楚,但是:

var mouseX = 0, mouseY = 0,

windowHalfX = window.innerWidth / 2,
windowHalfY = window.innerHeight / 2,

SEPARATION = 200,
AMOUNTX = 10,
AMOUNTY = 10,

camera, scene, renderer;

这是一个单独var的语句,逗号将其延续到行中。这可能会回答混乱并帮助您重新安排声明。

于 2012-07-24T02:15:53.327 回答
0

第 42 行确实是

particles, particle;

但是,第 41 行包含

var 容器,分隔 = 100,amountX = 50,amountY = 50,

所以完整的声明是(在一行上)

var container, separation = 100, amountX = 50, amountY = 50, particles, particle;

不要粗鲁,但下次更仔细地阅读代码可能会有所帮助。

于 2012-07-24T02:17:17.097 回答
0

'particles,particle' 在第 42 行的局部范围内声明(第 41 行的继续)。然而,“粒子”不在任何地方使用,“粒子”在本地使用。在 javascript 中声明变量 local 始终是一个好习惯。删除第 42 行使“粒子”成为全局变量。但是,由于在函数范围之外不需要“粒子”,因此最好在函数内将其声明为本地。Javascript 非常简单。您可以查看参考资料http://www.w3schools.com/jshttp://www.javascriptkit.com

于 2014-01-24T13:52:09.713 回答