用括号包围对象声明

时间:2013-08-05 14:10:42

标签: javascript

好奇为什么作者用括号here

包围了对象声明
rtpg.map.START_KEYS = ({"Key 1":"Value 1", "Key 2":"Value 2", "Key 3":"Value 3", "Key 4":"Value 4"});

为什么不:

rtpg.map.START_KEYS = {"Key 1":"Value 1", "Key 2":"Value 2", "Key 3":"Value 3", "Key 4":"Value 4"};

2 个答案:

答案 0 :(得分:3)

没有功能差异。

如果您在eval调用中使用JSON文本来获取JavaScript对象you have to use parentheses to disambiguate the resulting expression from a statement,但这不是这种情况:对象文字遵循=标记因此只能作为表达式进行解析,不需要消除歧义。

因此,作者完成了:

  • 一致性,或
  • 偏好,或
  • 无知。

答案 1 :(得分:0)

正如其他人所提到的,在使用eval时指定括号有一些价值,但这不是这里的情况。在这个特定的代码片段中,任何一种方式都可以完全相同,因此无论出于何种原因,这只是作者的偏好。