Использование замыкания для частных переменных в coffeescript - PullRequest
3 голосов
/ 07 октября 2011

В JavaScript можно определить закрытую переменную-член, сделав ее локальной функцией в функции, которая возвращает замыкание:

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

Это включает в себя идиому define-function-then-call-it, который довольно распространен в JavaScript, но я не знаю, как он переводится в CoffeeScript. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 07 октября 2011

Вы можете использовать ключевое слово do

count = do ->
  i = 0
  -> i++
2 голосов
/ 07 октября 2011

Как сказал Брайан, лучше всего использовать ключевое слово do. Вы также можете использовать парены, как в JavaScript:

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