在coffeescript中使用闭包作为私有变量

时间:2011-10-07 08:01:05

标签: closures coffeescript private

在JavaScript中,可以通过在返回闭包的函数中将其作为局部变量来定义私有成员变量:

var count = (function(){
  var i = 0;
  return function (){ return i++; }
})();

这涉及一个在JavaScript中相当常见的define-function-then-call-it习惯用法,但我不知道它在CoffeeScript中的翻译方式。有任何想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用do关键字

count = do ->
  i = 0
  -> i++

答案 1 :(得分:2)

正如Brian所说,do关键字是最好的。你也可以使用parens,就像在JavaScript中一样:

count = (->
  i = 0
  -> i++
)()