为啥在咖啡脚本的每个块的末尾都需要一个“未定义”?
Posted
技术标签:
【中文标题】为啥在咖啡脚本的每个块的末尾都需要一个“未定义”?【英文标题】:Why would you need a "undefined" at the end of every block in coffeescript?为什么在咖啡脚本的每个块的末尾都需要一个“未定义”? 【发布时间】:2017-03-28 16:10:51 【问题描述】:我正在处理另一个团队最初开发的一个非常大的咖啡脚本文件。出于某种原因,文件中几乎每个代码块的末尾都有一个“未定义”。例如:
someFunction = () ->
ajaxReq(
blah blah
undefined
)
undefined
$("#some_id").click((e)->
e.preventDefault()
blah blah
undefined
)
$(".some_class").change(->
blah blah
undefined
)
有人可以帮我理解他们为什么这样做,如果有必要吗?谢谢。
【问题讨论】:
relevant 【参考方案1】:因为 CoffeeScript 返回函数的最后一个表达式。在 javascript 中,所有函数默认返回 undefined
。在这些情况下,您不必写 undefined
,因为您没有使用返回值,但如果您使用并希望它保持一致,则必须返回 undefined
。
【讨论】:
您也可以使用不带参数的显式return
语句。以上是关于为啥在咖啡脚本的每个块的末尾都需要一个“未定义”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 rails 对咖啡脚本文件使用 .js.coffee 扩展名,因为它们无论如何都不能包含 JavaScript 代码?