- 创建与外层作用域同名的变量比较麻烦
在 JS 里我可以这样做:
var a = 'global a';
function func() {
var a = 'local a';
}
但是在 Coffee 里则只能:
a = 'global a';
func = ->
do (a = null) ->
a = 'local a'
为了定义局部变量需要多一层缩进,感觉不是很好。
- 没有办法使用 function 语句来定义函数
在 JS 里我可以这样:
module.exports = {
doXX: doXX,
doOO: doOO
};
function doXX() {}
function doOO() {}
这样在一个文件的开头可以很清晰地看到这个文件都定义了哪些函数,针对使用者的注释也可以都写在最上部,因为用 function 语句定义的函数会被提前到文件最开头,但在 Coffee 里就没办法这样做。