关于 javascript:如何 jsdoc 注释 BackboneJS 代码?

How to jsdoc annotate BackboneJS code?

有没有人用 JSDoc 记录过 BackboneJS 代码?

我在注释 Backbone 结构时遇到问题,例如:

1
2
3
4
5
6
7
8
9
10
11
12
User = Backbone.Model.extend({

    defaults: { a: 1 },

    initialize: function () {
        // ...
    },

    doSomething: function (p) {
        // ...
    }
});

任何建议表示赞赏。谢谢。


如果你说的是 JSDoc Toolkit,我认为它的工作原理是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
User = Backbone.Model.extend(
/** @lends User.prototype */
 {
  /**
   * @class User class description
   *
   * @augments Backbone.Model
   * @constructs
   *
   * Text for the initialize method
   */

    initialize: function() {}
})

重要的是@lends标签的位置!

这可能有点棘手,但如果这不起作用,请尝试其他一些示例:http://code.google.com/p/jsdoc-toolkit/wiki/CookBook


chris_b\\ 的回答对我有很大帮助,示例以及链接。不过,我不得不删除 @class 注释,否则它会为该类生成两个条目。此外,我正在添加这个答案来展示如何注释静态类成员(类级常量)。

(我们使用 require.js。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
define([
    'jquery', 'lodash', 'backbone'
], function($, _, Backbone) {
   "use strict";

    /**
     * Enumeration of constants that represent the different types of Hedgehogs.
     * @memberof models/Hedgehog
     * @enum {string}
     * @readonly
     */

    var types = { 'type1': 'Type 1', 'type2': 'Type 2' };

    var Hedgehog = Backbone.Model.extend(
    /** @lends models/Hedgehog.prototype */
    {
        /**
         * This is the model for Hedgehogs.
         *
         * @augments external:Backbone.Model
         * @constructs
         */

        initialize: function() {
            // your code
        },

        // some more methods
    }, {
        // static class members
       "types": types
    });
    return Hedgehog;
});