Coffeescript 带花括号的函数?

Coffeescript 带花括号的函数?,coffeescript,Coffeescript,此咖啡脚本代码: root = document.getElementById "hello" document.addEventListener("DOMContentLoaded", () => { root.innerHTML = "goodbye" }, false) 给出一个错误:意外=。当我编译此代码时: root = document.getElementById "hello" document.addEventListener("DOMContentLoad

此咖啡脚本代码:

root = document.getElementById "hello"

document.addEventListener("DOMContentLoaded", () => {
    root.innerHTML = "goodbye"
}, false)
给出一个
错误:意外=
。当我编译此代码时:

root = document.getElementById "hello"

document.addEventListener("DOMContentLoaded", =>
    root.innerHTML = "goodbye"
, false)
它起作用了。然而,我真的不喜欢省略花括号的模糊性

有没有一种方法可以用大括号或等效的大括号包围CoffeeScript代码块?

大括号(
{}
)不能用于CoffeeScript中的代码块。而是使用缩进

在Coffeescript中,花括号用于和(可选)中

发件人:

不要使用大括号{}来包围函数中的代码块,而是使用缩进


在您的示例中,大括号被解释为对象定义,其中
=
引发异常,因为它期望
定义对象属性

缩进定义代码块是Coffeescript的核心功能。就我个人而言,我并不认为这段代码模棱两可。但是在函数不是最终参数的情况下,使用尾随的
,false
进行读取是非常奇怪的

我建议从事件侦听器中分离函数定义:

onDOMContentLoaded =>
  root.innerHTML = "goodbye"

document.addEventListener "DOMContentLoaded", onDOMContentLoaded, false
如果你真的想用一些东西来定义函数,你可以把它用括号括起来。您需要在括号中包含
=>
,但是:

document.addEventListener("DOMContentLoaded", ( =>
  root.innerHTML = "goodbye"
), false)