Victor Nicollet
Victor Nicollet

Reputation: 24587

Using closure for private variables in coffeescript

In JavaScript, one would define a private member variable by making it a local variable in a function that returns a closure:

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

This involves a define-function-then-call-it idiom that is fairly common in JavaScript, but I do not know how it translates in CoffeeScript. Any ideas?

Upvotes: 3

Views: 345

Answers (2)

Trevor Burnham
Trevor Burnham

Reputation: 77436

As Brian said, the do keyword is best. You can also use parens, just as in JavaScript:

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

Upvotes: 2

Brian Genisio
Brian Genisio

Reputation: 48167

You can use the do keyword

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

Upvotes: 3

Related Questions