そこで、Coffee Script について、おそらくばかげた質問をしたいと思います。2度目のチャンスを与えていますが、なぜすべてを返すのですか?
関数の最後のステートメント/行であることと関係がありますか? どうすればこれを無効にできますか?コメントや何かを最後の「表現」として入れると、それが「文書化された」機能であることはわかっていますが、そうではありません。いいえ、そうではありません。どこにでも返品がないのはどうすればよいですか? ダウンロード/実行時間を節約しますか?
確かに、このような振る舞いはジットを台無しにしますか?
(locate =
getPosition: () ->
# Check we support geolocation
throw Exception 'Your browser doesn\'t support location based services!' if !navigator.geolocation
navigator.geolocation.getCurrentPosition (pos) ->
console.log pos
)
にコンパイルします
(function() {
var locate;
locate = {
getPosition: function() {
if (!navigator.geolocation) {
throw Exception('Your browser doesn\'t support location based services!');
}
return navigator.geolocation.getCurrentPosition(function(pos) {
return console.log(pos);
});
}
};
}).call(this);
[編集]
私が気にする理由は、これが私が構築したアプリの非常に大きなライブラリの 1 つに過ぎないからです。500 個の関数があり、そのうちの 200 個が数値やオブジェクトなどを返す代わりに dom に対して何かを行うとしたら、その余分な 200 個はリターンは、私が望まない、または必要としない余分な 1.2k のデータです。
また、リターンのない関数、リターン、undefined
およびよくリターンする関数についてはnull
、説明の必要はありません。私がこれをチェックするのに十分なほど愚かだったら、それは全面的に間違っているでしょう.
いくつかのパフォーマンスの違いがあると確信していますが、それについてはわかりません。現在、jsperfs を実行する時間がありませんが、興味があります。