【问题标题】:How do you document anonymous functions? [closed]你如何记录匿名函数? [关闭]
【发布时间】:2011-02-04 21:55:12
【问题描述】:

我特别指的是 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;
}

谢谢

【问题讨论】:

    标签: java javascript documentation javadoc jsdoc


    【解决方案1】:

    理想情况下,匿名函数应该简短并执行简单的任务。所以......包含它的外部函数应该提供足够的文档。

    如果不是这样,您可能应该将匿名函数提取到命名函数中,然后正确记录它。

    【讨论】:

      【解决方案2】:

      这并不是真正的匿名函数。它有一个名字。名称是“bar”,或者更具体地说,是“foo.bar”。在我看来,这实际上是一个函数字面量。在我看来,真正的匿名函数是一个没有名字的函数,就像另一个函数的参数:

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

      现在,根据 Javascript:权威指南 中的 David Flanagan 所说,匿名函数是“使用 Function() 构造函数创建的”。不过,他在那里对冲他的赌注,因为他进一步指出,这些函数只是“有时”称为匿名的。

      我为什么要在这里提出这个问题?因为我认为如果你有一个名字,它就不能真正被称为匿名。而且我认为关于 Javascript 函数的“匿名”一词充其量是模棱两可的,至少应该由某个地方的人澄清一下。

      【讨论】:

        【解决方案3】:

        通过使其不匿名。

        我发现记录某事的最佳方式是不记录。我的意思是我使用好的变量/函数名称和清晰的代码作为我的文档。

        所以在这种情况下,我只需要创建一个静态函数来创建该匿名函数,因此我可以给该静态函数起一个好名字。它

        【讨论】:

        • 你是说尤达很愚蠢吗?你怎么敢! :-)
        • 虽然自我记录代码始终是一种好方法并且应该遵循,但不应将其解释为完整的文档。在许多情况下,进一步的文件是必要的和可取的。没有什么比运行作者“认为”的代码更糟糕的了
        • @Bill 但是如果代码的作者你认为他的 cmets 会是什么?无用和重复的工作
        • @Pyrolistical 我说的不是糟糕的文档,我说的是完整的文档。仅仅因为作者(他非常熟悉他编写的代码)认为代码是自记录的,不需要进一步澄清,并不意味着其他人也是如此。所有语言都有文档块是有原因的。我宁愿有太多的文档,甚至是“重复的工作”,而不是太少。
        • 代码应该记录How,cmets应该记录Why
        猜你喜欢
        • 2011-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-30
        • 1970-01-01
        相关资源
        最近更新 更多