2013-03-24 65 views
3

寫入時類似的東西:爲什麼coffeescript在任何地方都使用«return»語句?

$(document).ready -> 
    doSomething() 

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

被編譯成

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

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

在我的理解中,return語句是值(字符串,數組,整數......)

爲什麼coffeescript做到了嗎?

+0

只是爲了編寫統一/很好的腳本和'返回警報('沒有做');'==返回; – 2013-03-24 13:02:53

回答

8

如果沒有指定,CoffeeScript將使用隱式返回。

CS返回函數中最後一條語句的值。這意味着生成的JS將擁有最後一個語句的return值,因爲JS需要明確的return

return語句是值(字符串,數組,整數......)

是,這些值可以通過調用一個函數,就像在你的榜樣doSomething()alert()返回。值是執行方法的結果並不重要。

1

像Ruby一樣,Coffeescript始終返回函數中的最後一條語句。最後一條語句將總是評估爲一個值(字符串,數組,整數等)或null。無論哪種情況,返回結果都是完全有效的。

要回答「爲什麼」 coffescript做這所有的功能,而不是唯一的,那裏是一個價值,它只是因爲在很多情況下,CoffeeScript中無法講出的最後一條語句將評估的值或null。在那裏總是有return聲明更安全和簡單,並且沒有任何負面影響。如果你不在乎函數返回什麼,你可以忽略返回的值。

+1

CS不能在完整的環境下執行它,而不能確定最後一條語句是否會評估爲「或」null「。它將'return'放在那裏,因爲執行最後一條語句的結果被返回 - 在* all *處沒有考慮執行它的結果。 – 2013-03-24 13:07:20