Javascript 如何在自调用函数中记录简单类?

Javascript 如何在自调用函数中记录简单类?,javascript,documentation,jsdoc,jsdoc3,Javascript,Documentation,Jsdoc,Jsdoc3,如何记录以下代码片段?当我让它保持原样时,Foo.bar没有描述。当我添加@memberof标记时,它将被记录为静态属性。添加@instance标记不会改变任何内容。这是一个非常简单和常见的代码模式,所以应该很容易编写文档,对吗我讨厌jsdoc… /** * @namespace */ var ns; (function (ns) { 'use strict'; /** * Constructs class * @class ns.Foo *

如何记录以下代码片段?当我让它保持原样时,
Foo.bar
没有描述。当我添加
@memberof
标记时,它将被记录为静态属性。添加
@instance
标记不会改变任何内容。这是一个非常简单和常见的代码模式,所以应该很容易编写文档,对吗我讨厌jsdoc…

/**
 * @namespace
 */
var ns;

(function (ns) {
    'use strict';

    /**
     * Constructs class
     * @class ns.Foo
     */
    function Foo() {
    }

    /**
     * Blabla
     */
    Foo.prototype.bar = function () {

    };

    ns.Foo = Foo;

})(ns || (ns = {}));

我认为您需要做的是在@instance之外添加@function和@memberof。这会告诉jsdoc它是什么以及它的位置:

/**
 * Blabla
 * @function bar
 * @memberof ns.Foo
 * @instance
 */
Foo.prototype.bar = function () {

};

我觉得jsdoc也很迟钝。。。坚持住。:-)

我认为您需要做的是在@instance之外添加@function和@memberof。这会告诉jsdoc它是什么以及它的位置:

/**
 * Blabla
 * @function bar
 * @memberof ns.Foo
 * @instance
 */
Foo.prototype.bar = function () {

};
我觉得jsdoc也很迟钝。。。坚持住。:-)

用于告诉jsdoc函数中的内容属于您的命名空间。这样,您就不必到处在代码中添加
@memberof
。当我在这里运行它时,以下功能起作用:

/**
 * @namespace
 */
var ns;

(/** @lends ns */ function (ns) {
    'use strict';

    /**
     * Constructs class
     * @class
     */
    function Foo() {
    }

    /**
     * Blabla
     */
    Foo.prototype.bar = function () {

    };

    ns.Foo = Foo;

})(ns || (ns = {}));
用于告诉jsdoc函数中的内容属于您的命名空间。这样,您就不必到处在代码中添加
@memberof
。当我在这里运行它时,以下功能起作用:

/**
 * @namespace
 */
var ns;

(/** @lends ns */ function (ns) {
    'use strict';

    /**
     * Constructs class
     * @class
     */
    function Foo() {
    }

    /**
     * Blabla
     */
    Foo.prototype.bar = function () {

    };

    ns.Foo = Foo;

})(ns || (ns = {}));

谢谢,它很管用,不过对我来说是FUBAR。在我所有的项目中,猜测正确的jsdoc标记花费的时间比它应该花费的时间要多。此外,jsdoc代码段应该包含文档,但现在它包含大量无意义的标记。正如我所悲伤的:我讨厌它-有没有更好的方法来记录JS文档?不确定。我发现NaturalDocs()更具可预测性,但它在表示方面有点有限,我认为它没有得到积极维护。jsduck()看起来很有趣,但我还没有真正玩过它。我的问题是,我曾多次玩弄过javascript模块,创建了一个专门用于javascript的模块,并且能够更好地解决问题。。。但是,唉,我还有其他工作要做。如果你找到了你更喜欢的东西,请告诉我。谢谢,它很有效,尽管对我来说是福巴。在我所有的项目中,猜测正确的jsdoc标记花费的时间比它应该花费的时间要多。此外,jsdoc代码段应该包含文档,但现在它包含大量无意义的标记。正如我所悲伤的:我讨厌它-有没有更好的方法来记录JS文档?不确定。我发现NaturalDocs()更具可预测性,但它在表示方面有点有限,我认为它没有得到积极维护。jsduck()看起来很有趣,但我还没有真正玩过它。我的问题是,我曾多次玩弄过javascript模块,创建了一个专门用于javascript的模块,并且能够更好地解决问题。。。但是,唉,我还有其他工作要做。如果你发现你更喜欢的东西,请告诉我。现在它起作用了。我一定是错过了什么。但是,在生成的文档中的@JayKuri解决方案中,类名为ns.Foo,而在您的-ns~Foo中。我不知道有什么区别。我忘了这个细节。在
ns.Foo
中,符号
Foo
被理解为静态成员,而在
ns~Foo
中,符号是内部成员。(文件是)。我想说
ns.Foo
更好。但是,无法让
@lends
生成此名称。(我试过了。)问题已经报告,所以我希望新版本将升级
@lends
,以正确处理它。我更愿意接受不正确的符号,并相信当问题得到解决时,升级将是无痛的,而不必在我庞大的代码库中到处写
@memberof
。你能分享你提到的问题的链接吗?我找不到它。这涵盖了jsdoc如何处理内部与静态的问题。当霸权为AMD风格的模块算出它时,它也会为
@lends
算出。如果我添加
@private
,那么它是私有的,不会显示在文档中。确保没有告诉jsdoc输出私有实体的配置选项,如命令行上的
-p
-private
或配置文件中的等效项。现在它可以工作了。我一定是错过了什么。但是,在生成的文档中的@JayKuri解决方案中,类名为ns.Foo,而在您的-ns~Foo中。我不知道有什么区别。我忘了这个细节。在
ns.Foo
中,符号
Foo
被理解为静态成员,而在
ns~Foo
中,符号是内部成员。(文件是)。我想说
ns.Foo
更好。但是,无法让
@lends
生成此名称。(我试过了。)问题已经报告,所以我希望新版本将升级
@lends
,以正确处理它。我更愿意接受不正确的符号,并相信当问题得到解决时,升级将是无痛的,而不必在我庞大的代码库中到处写
@memberof
。你能分享你提到的问题的链接吗?我找不到它。这涵盖了jsdoc如何处理内部与静态的问题。当霸权为AMD风格的模块算出它时,它也会为
@lends
算出。如果我添加
@private
,那么它是私有的,不会显示在文档中。确保没有告诉jsdoc输出私有实体的配置选项,如命令行上的
-p
-private
或配置文件中的等效项。