咖啡脚本:当我尝试创建对象文字的对象文字时,意外的“{”
Coffeescript: Unexpected '{' when I try to create an object literal of object literals
对于此语法:
BASE_RUNNERS = { basesLoaded: { first: "manned", second: "manned", third: "manned" },
firstAndSecond: { first: "manned", second: "manned", third: "empty" },
firstAndThird: { first: "manned", second: "empty", third: "manned" },
secondAndThird: { first: "empty", second: "manned", third: "manned" },
first: { first: "manned", second: "empty", third: "empty" },
second: { first: "empty", second: "manned", third: "empty" },
third: { first: "empty", second: "empty", third: "manned" },
empty: { first: "empty", second: "empty", third: "empty" }
}
我收到错误:
[stdin]:154:27: error: unexpected {
firstAndSecond: { first: "manned", second: "manned", third: "empty", addedScore: 0 },
^
不知道为什么,这对我来说看起来是合法的。
大括号不是问题,问题是非 CoffeeScript 缩进。CoffeeScript 对空格非常敏感,即使您提供可选的大括号,您仍然需要注意缩进是否与所需的块结构匹配。如果你这样写,混乱就会消失:
BASE_RUNNERS = {
basesLoaded: { first: "manned", second: "manned", third: "manned" },
firstAndSecond: { first: "manned", second: "manned", third: "empty" },
firstAndThird: { first: "manned", second: "empty", third: "manned" },
secondAndThird: { first: "empty", second: "manned", third: "manned" },
first: { first: "manned", second: "empty", third: "empty" },
second: { first: "empty", second: "manned", third: "empty" },
third: { first: "empty", second: "empty", third: "manned" },
empty: { first: "empty", second: "empty", third: "empty" }
}
困难的根源是非缩进basesLoaded
与其余键的缩进相结合。
Coffeescript 不接受有效的 Javascript 语法,我不得不将其重写为:
BASE_RUNNERS =
basesLoaded: first: "manned", second: "manned", third: "manned"
firstAndSecond: first: "manned", second: "manned", third: "empty"
firstAndThird: first: "manned", second: "empty", third: "manned"
secondAndThird: first: "empty", second: "manned", third: "manned"
first: first: "manned", second: "empty", third: "empty"
second: first: "empty", second: "manned", third: "empty"
third: first: "empty", second: "empty", third: "manned"
empty: first: "empty", second: "empty", third: "empty"
我不确定哪个更好; 恕我直言,看起来更糟。
相关文章:
- 添加文字和评论功能更新Div
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 铬:“;未捕获的语法错误:意外的标记:"
- Javascript未捕获语法错误意外的标识符错误
- 未捕获的语法错误:意外的标记{
- "未捕获的语法错误:意外的标记}"
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- 如何计算对象文字中的键
- I'我想放下画布上的文字.帮帮我
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 未捕获的SyntaxError:具有服务器变量的意外标识符
- html() 的意外行为
- 对象文字方法上的Javascript绑定不起作用
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 咖啡脚本:当我尝试创建对象文字的对象文字时,意外的“{”
- 铬 - 意外令牌 非法.火狐和.字符串文字
- 在 JavaScript 中使用浮点文字时出现意外结果
- Javascript 对象文字表示法的意外行为
- 未捕获的SyntaxError:意外的令牌非法和SyntaxError:未终止的字符串文字