2011-10-07 8 views
3

でプライベート変数のためのクロージャを使用して、一つはそれクロージャを返す関数内のローカル変数ことによって、プライベートメンバ変数を定義しますJavaScriptでのCoffeeScript

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

これが定義する機能-then-を含み、それはJavaScriptでよく使われるイディオムですが、CoffeeScriptでどのように翻訳されるのか分かりません。何か案は?

答えて

3

ブライアンはdoキーワードが最善である、言ったようにあなたはdoキーワード

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

、作業ワンライナーは '回数=だろう - > I = 0; - > i ++ ' –

+0

@JacobOscarsonいいえそうでない...' do'を省略して 'count()'を呼び出すと、関数を返します。 'do'をインクルードして' count() 'を呼び出すと、インクリメントする整数を返します。 –

+0

ああ、私は彼がカウンタージェネレーターを望んだと思った。 –

2

を使用することができます。あなたはまた、単にJavaScriptでのように、括弧を使用することができます。でも、「行う」をせずに動作し

count = (-> 
    i = 0 
    -> i++ 
)() 
関連する問題