用花括号函数?
Function with curly braces?
此 CoffeeScript 代码:
root = document.getElementById "hello"
document.addEventListener("DOMContentLoaded", () => {
root.innerHTML = "goodbye"
}, false)
给出一个error: unexpected =
。当我编译这段代码时:
root = document.getElementById "hello"
document.addEventListener("DOMContentLoaded", =>
root.innerHTML = "goodbye"
, false)
有效。但是,我真的不喜欢省略花括号的歧义。
有没有办法用花括号或等效物将 CoffeeScript 代码块括起来?
花括号 ({}
) 不能用于 coffeescript 中的代码块。相反,你使用缩进。
在 Coffeescript 中,大括号用于 string interpolation and (optionally) for defining objects。
来自 coffeescript.org:
Instead of using curly braces { } to surround blocks of code in functions, if-statements, switch, and try/catch, use indentation.
在您的示例中,大括号被解释为对象定义,其中 =
引发异常,因为它期望 :
定义对象属性。
用于定义代码块的缩进是 Coffeescript 的核心功能。就个人而言,我根本不认为这段代码有歧义。但是在函数不是最后一个参数的情况下,用尾随 , false
读取是很奇怪的。
我建议从事件侦听器中分离出函数定义:
onDOMContentLoaded =>
root.innerHTML = "goodbye"
document.addEventListener "DOMContentLoaded", onDOMContentLoaded, false
如果你真的想要一些东西来分隔函数,你可以把它包在括号里。不过,您需要在括号中包含 =>
:
document.addEventListener("DOMContentLoaded", ( =>
root.innerHTML = "goodbye"
), false)
此 CoffeeScript 代码:
root = document.getElementById "hello"
document.addEventListener("DOMContentLoaded", () => {
root.innerHTML = "goodbye"
}, false)
给出一个error: unexpected =
。当我编译这段代码时:
root = document.getElementById "hello"
document.addEventListener("DOMContentLoaded", =>
root.innerHTML = "goodbye"
, false)
有效。但是,我真的不喜欢省略花括号的歧义。
有没有办法用花括号或等效物将 CoffeeScript 代码块括起来?
花括号 ({}
) 不能用于 coffeescript 中的代码块。相反,你使用缩进。
在 Coffeescript 中,大括号用于 string interpolation and (optionally) for defining objects。
来自 coffeescript.org:
Instead of using curly braces { } to surround blocks of code in functions, if-statements, switch, and try/catch, use indentation.
在您的示例中,大括号被解释为对象定义,其中 =
引发异常,因为它期望 :
定义对象属性。
用于定义代码块的缩进是 Coffeescript 的核心功能。就个人而言,我根本不认为这段代码有歧义。但是在函数不是最后一个参数的情况下,用尾随 , false
读取是很奇怪的。
我建议从事件侦听器中分离出函数定义:
onDOMContentLoaded =>
root.innerHTML = "goodbye"
document.addEventListener "DOMContentLoaded", onDOMContentLoaded, false
如果你真的想要一些东西来分隔函数,你可以把它包在括号里。不过,您需要在括号中包含 =>
:
document.addEventListener("DOMContentLoaded", ( =>
root.innerHTML = "goodbye"
), false)