3

私は特に JavaScript 匿名関数について言及していますが、これは他の言語にも当てはまる可能性があります。私は自分のスクリプトで JSDoc 表記を使用するのが好きです。他の人が遅かれ早かれ JSDoc 表記法をハッキングすることを知っているからです。非常に複雑な匿名関数がある場合、JSDoc または JavaDoc 表記法を理解する Eclipse やその他の 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;
}

ありがとう

4

3 に答える 3

11

理想的には、無名関数は短く、単純なタスクを実行する必要があります。したがって...それを含む外側の関数は、十分なドキュメントを提供する必要があります。

そうでない場合は、匿名関数を名前付き関数に抽出し、適切に文書化する必要があります。

于 2010-04-06T17:00:04.200 に答える
1

これは実際には無名関数ではありません。名前があります。名前は「bar」、より具体的には「foo.bar」です。私の考え方では、これは実際には関数リテラルです。私の考えでは、真の無名関数とは、別の関数への引数のように、実際には名前を持たない関数です。

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

現在、David Flanagan in Javascript: The Definitive Guideによると、無名関数は「Function() コンストラクターで作成される」関数です。しかし、彼はそのような関数は「時々」匿名と呼ばれるだけであるとさらに述べているため、そこで賭けをヘッジしています。

なぜここでこの問題を提起するのですか? 何かに名前があれば、それは本当に匿名とは言えないと思うからです。そして、Javascript 関数に関する「匿名」という用語はせいぜいあいまいであり、少なくともどこかで誰かが明確にする必要があると思います。

于 2010-04-06T17:12:36.357 に答える
0

匿名にしないことで。

何かを文書化する最善の方法は、文書化しないことだと思います。つまり、適切な変数/関数名と明確なコードをドキュメントとして使用します。

したがって、この場合、その匿名を作成する静的関数を作成するだけなので、その静的関数に適切な名前を付けることができます.it

于 2010-04-06T16:59:55.277 に答える