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)