我已經開始更多地使用Javascript了,因此我寫的東西已經足夠複雜,組織正在成爲一個關注點。但是,這個問題適用於允許您嵌套函數的任何語言。從本質上講,什麼時候應該使用一個名爲全局或內部函數的匿名函數?使用匿名函數的最乾淨的方法是什麼?
起初我以爲這是有史以來最酷的功能,但我認爲我會過度。下面是我最近寫的一個例子,省略了所有變量的排列和條件,以便您可以看到結構。
function printStream() {
return fold(function (elem, acc) {
...
var comments = (function() {
return fold(function (comment, out) {
...
return out + ...;
}, '', elem.comments);
return acc + ... + comments;
}, '', data.stream);
}
我雖然意識到(我認爲)有某種美的在如此緊湊,它可能不是一個好主意,你不會想在一噸的代碼相同的方式做到這一點雙重循環。
如果你是一個單獨的開發者,那麼「得到它」測試是困難的。很難判斷你以後是否會在重訪時感到困難。我認爲你的2-3線經驗法則可能是我會堅持的一個很好的經驗法則。我想我可以避免完全嵌套的誘惑。 – 2010-05-21 17:28:43