これをcoffeescriptで書く方法は?
f = (function(){
// something
})();
ヒントをありがとう:)
かっこだけを使用できます(例:(-> foo)()
、do
キーワードを使用してそれらを回避できます。
do f = -> console.log 'this runs right away'
do
の最も一般的な使用法は、ループで変数をキャプチャすることです。例えば、
for x in [1..3]
do (x) ->
setTimeout (-> console.log x), 1
do
がなければ、ループの後にx
の値を3回出力するだけです。
CoffeeScriptの自己呼び出し関数に渡される引数を「エイリアス」したい場合、これがあなたが達成しようとしていることだとしましょう:
_(function ( global, doc ) {
// your code in local scope goes here
})( window, document );
_
その場合、do (window, document) ->
はそれを許可しません。行く方法は、括弧付きです:
_(( global, doc ) ->
# your code here
)( window, document )
_
コーヒーではとんでもなく簡単です。
do ->
戻ります
(function() {})();
do
キーワードをデフォルトの関数パラメーターと組み合わせて、再帰的な「自己開始関数」に初期値をシードすることもできます。例:
do recursivelyPrint = (a=0) ->
console.log a
setTimeout (-> recursivelyPrint a + 1), 1000
使用してみてください
do ($ = jQuery) ->
do ->
#your stuff here
これにより、自己実行型のクロージャーが作成されます。これはスコーピングに役立ちます。
謝罪、私はそれを解決しました:
f = (
() -> "something"
)()
そのはず
f = () ->
# do something