【问题标题】:Strange javascript object init?奇怪的javascript对象初始化?
【发布时间】:2012-12-05 00:17:30
【问题描述】:

我最近在一个 WebGL 教程中遇到了这个变量初始化:

var mouse = { x: 0, y: 0 }, INTERSECTED;

我从未见过这种格式。我知道它正在创建一个具有 x 和 y 属性的对象,但是 INTERSECTED 与变量/对象有什么关系?

谢谢!

【问题讨论】:

  • 我相信INTERSECTED 刚刚被初始化。喜欢var INTERSECTED;
  • @elclanrs:它实际上不是逗号运算符。只是var语句使用了相同的字符作为分隔符。
  • 没错。这就是 wiki 所说的,它提供了 separator 以及 operator 的示例。
  • 谢谢大家!答案总是比我的大脑想要的简单。

标签: javascript variables object initialization


【解决方案1】:

该行只是声明了两个变量(mouseINTERSECTED),并将 mouse 初始化为 { x: 0, y: 0}

INTERSECTED 不一定与mouse 相关,尽管清晰的代码只应在高度相关的情况下将多个变量一起声明(即便如此,许多人更喜欢在单独的行上声明每个变量)。

【讨论】:

  • 它们在剧本中高度相关,我想这就是让我失望的地方。感谢您的回答!
【解决方案2】:

我可能弄错了,但我认为它就像

var A=3,B;

定义值为 3 的 A 和未初始化的 B。 INTERSECTED 只是另一个变量。

【讨论】:

    【解决方案3】:

    INTERSECTEDmouse 无关。这只是初始化两个变量的一种方式。我猜INTERSECTED 在那里,所以它被视为局部变量。

    【讨论】:

      【解决方案4】:

      只需加上我的 2 美分:通常的约定是将它们写在两个单独的行上,这当然可以避免任何混淆:

      var mouse = { x: 0, y: 0 },
          INTERSECTED;
      

      (另请注意,约定是有四个空格缩进,可以很好地对齐变量)

      【讨论】:

        猜你喜欢
        • 2012-06-27
        • 2013-11-24
        • 2011-02-22
        • 2012-11-10
        • 2017-05-18
        • 2021-12-06
        • 1970-01-01
        • 2017-11-15
        相关资源
        最近更新 更多