3

そのようなものを書くとき:

$(document).ready ->
  doSomething()

doSomething = ->
  alert('Nothing to do')

にコンパイルされます

$(document).ready(function() {
  return doSomething();
});

doSomething = function() {
  return alert('Nothing to do');
};

私の理解では、returnステートメントは値(文字列、配列、整数...)用です

なぜcoffeescriptがそれをするのですか?

4

2 に答える 2

8

何も指定されていない場合、CoffeeScriptは暗黙の戻り値を使用します。

CSは、関数の最後のステートメントの値を返します。これは、returnJSが明示的なを必要とするため、生成されたJSは最後のステートメントの値を持つことを意味しreturnます。

returnステートメントは値(文字列、配列、整数...)用です

doSomething()はい。これらの値は、例のように、または例のように関数を呼び出すことで返される場合がありalert()ます。値がメソッドの実行の結果であるということは重要ではありません。

于 2013-03-24T13:03:29.977 に答える
1

Rubyのように、Coffeescriptは常に関数の最後のステートメントを返します。最後のステートメントは、常に値(文字列、配列、整数など)またはのいずれかに評価されますnull。いずれの場合も、結果を返すことは完全に有効です。

「なぜ」coffescriptが値がある関数だけでなく、すべての関数でこれを行うのは、多くの場合、Coffeescriptが最後のステートメントがいつ値またはに評価されるかを判断できないためnullです。常にそこにステートメントを置く方がはるかに安全で簡単でreturnあり、悪影響はありません。関数が何を返すかを気にしない場合は、戻り値を無視してかまいません。

于 2013-03-24T13:05:32.450 に答える