2010-04-06 74 views
3

我特指JavaScript匿名函數,但這可能與其他語言有關。我喜歡在我的腳本中使用JSDoc符號,因爲我知道其他人遲早會攻擊它。當我有非常複雜的匿名函數時,人們如何記錄它以便Eclipse和其他理解JSDoc或JavaDoc符號的IDE可以獲取它們?你如何記錄匿名功能?

/** 
* Blah Blah blah 
* 
* @param Object Blah blah blah 
* @return Blah Blah Blah 
* @type Object 
*/ 
function foo(this) { 
...... 
this.bar = function() { ... complex code .....}; 
...... 
return obj; 
} 

感謝

回答

10

理想匿名函數應該簡短並且執行簡單的任務。所以......包含它的外部函數應該提供足夠的文檔。

如果不是這種情況,您應該將匿名函數提取到命名函數中,然後正確記錄它。

0

通過使它不能匿名。

我發現最好的方式來記錄的東西是不要。我的意思是我使用了好的變量/函數名和清晰的代碼作爲我的文檔。

因此,在這種情況下,我只想創建創建一個匿名一個靜態函數,因此我可以給靜態函數的好name.it

+0

你是說尤達是愚蠢的。你怎麼敢! :-) – Clutch 2010-04-06 17:05:48

+0

雖然自我記錄代碼總是一個很好的方法,應該遵循,但它不應該被解釋爲完整的文檔。有很多場合需要進一步的文件。沒有比作品「認爲」的代碼更糟糕,它本身完全是自我解釋的,但只有作者認爲。 – Bill 2010-04-06 17:06:48

+0

@Bill但如果代碼的作者事情,你認爲他的評論將是什麼?無用的和重複的工作 – Pyrolistical 2010-04-06 17:16:21

1

這不是一個真正的匿名函數。它有一個名字。名稱是「bar」,或者更具體地說,是「foo.bar」。根據我的思維方式,這是一個函數文字。爲了我的思維方式,真正的匿名函數是真的沒有一個名字,就像一個參數傳遞給另一個函數的函數:

var intervalId = setTimeout(function() { // statements }, 1000); 

現在,根據大衛·弗拉納根在JavaScript權威指南,一個匿名函數是「用Function()構造函數創建的函數」。不過,他在那裏對衝了他的賭注,因爲他進一步說明這些職能只是「有時」被稱爲匿名。

爲什麼我在這裏提出這個問題?因爲我認爲如果你有某個名字的話,它不能稱爲匿名。我認爲關於Javascript功能的術語「匿名」至多是模棱兩可的,至少應該由某個地方的某個人澄清。