更新:再確認したところ、これらのリターンの一部は偽/冗長であるように見えます。これは、Coffeescript が常に関数の最後のステートメントの結果を返す (return
キーワードを保存できるようにするため) ためです。これは、Javascript では何も返さなかった場合でも (コンパイラーはここでの意図を知ることができません)。これは不必要かもしれませんが、戻り値を使用している人がいなければ害はありません。「何も返さない」ことが何らかの形で重要な場合は、明示的にそれを行うこともできます。
コンパイルして、結果を確認できます。
var phantom;
phantom = require('phantom');
phantom.create(function(ph) {
return ph.createPage(function(page) {
return page.open("http://www.google.com", function(status) {
console.log("opened google? ", status);
return page.evaluate((function() {
return document.title;
}), function(result) {
console.log('Page title is ' + result);
return ph.exit();
});
});
});
});
どこにでもリターンがあります。
そこに定義するすべての関数には、1 つの戻り値があります。
Coffeescript の主な動機の 1 つは、これらすべてのコールバック関数をより少ないボイラープレートで記述できるようにすることです。
いずれにせよ、コンパイラは「正確」です。