【问题标题】:variable three.js变量三.js
【发布时间】:2014-01-24 21:52:09
【问题描述】:

我不明白这里到底发生了什么,这似乎是一个语法问题。以防万一它可能会有所帮助,我对 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 行,它的效果也很好。

为什么会这样?怎么回事?

谢谢

【问题讨论】:

    标签: javascript syntax three.js


    【解决方案1】:

    此代码的格式不正确(恕我直言)。没有说清楚,但是:

    var mouseX = 0, mouseY = 0,
    
    windowHalfX = window.innerWidth / 2,
    windowHalfY = window.innerHeight / 2,
    
    SEPARATION = 200,
    AMOUNTX = 10,
    AMOUNTY = 10,
    
    camera, scene, renderer;
    

    这是一个单独的var 语句,逗号将其延续。这可能会解决困惑并帮助您重新安排声明。

    【讨论】:

    • 谢谢!我实际上不习惯这种格式,但我应该注意到它!
    • 这不是格式错误,以这种方式使用单个 var 语句是 lint。
    • @Chad:lint 不是风格的仲裁者!
    • @Len,这是 100% 的意见。我认为这比连续看到 50 个 var 语句更具可读性。
    • @Chad:哦,我同意这一点;我认为的错误是后续行没有进一步缩进。
    【解决方案2】:

    第42行确实是

    particles, particle;
    

    然而,第 41 行包含

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

    所以完整的语句是(一行)

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

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

    【讨论】:

    • 对于新人来说,阅读已经够难了,而且一开始就没有格式错误。
    • 我猜,但缺少空行立即将我的目光吸引到上面的行。
    • @Aatch:确实(和我的);但是,第 30 行附近的第一块声明可能会让您感到困惑,以至于无法看到它。
    • 好吧,我错过了。我以为你想出了一个例子,我直接跳到第 42 行。这么多用于理解的代码:羞愧地垂头丧气:
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2020-04-11
      • 2013-10-19
      • 1970-01-01
      • 2016-09-22
      • 2019-01-07
      • 2016-12-13
      • 1970-01-01
      • 2016-07-25
      相关资源
      最近更新 更多