1

我有以下 JavaScript。

它是一个 RequireJS 模块,将其函数命名为对象字面量。我提到:我如何 JSDoc 一个嵌套对象的方法?了解如何标记 JSDoc 符号。

我在一个 grunt 任务中运行 JSDocs 3.3.0-beta3,private: true但在模块页面上没有私有方法或 publich 方法的参数。

/**
 * A module doing a lot of Foo.
 * @module Foo
 * @requires jquery
 * @author Markus Falk
 */
define(['jquery'], function($) {

  'use strict';

  /**
   * @property {Object} Container
   */
  var Foo = {
    /**
     * Caches all jQuery Objects for later use
     * @function
     * @private
     */
    _cacheElements: function() {
      this.$foo = $('.foo');
    },
    /**
     * inits the app and returns the Message Text
     * @function
     * @public
     * @param {Object} msg - The message.
     * @param {string} msg.text - The message's Text.
     * @param {string} msg.author - The message's author.
     * @returns {String} Sentence with given message.text
     */
    init: function(msg) {
      this._cacheElements();
      return "Say " + msg.text;
    }
  };

  return /** @alias module:Foo */ {
    /** init */
    init: Foo.init
  };
});

这是此 JSDoc 代码的输出:

JSDocs

4

1 回答 1

1

Try @function init and @function _cacheElements

/**
 * A module representing a Foo.
 * @module Foo
 * @requires jquery
 * @author Markus Falk
 */
define(['jquery'], function($) {

  'use strict';

  /**
   * @property {Object} Container
   */
  var Foo = {
    /**
     * Caches all jQuery Objects for later use
     * @function _cacheElements
     * @private
     */
    _cacheElements: function() {
      this.$foo = $('.foo');
    },
    /**
     * inits the app and returns the Message Text
     * @function init
     * @public
     * @param {Object} msg - The message.
     * @param {string} msg.text - The message's Text.
     * @param {string} msg.author - The message's author.
     * @returns {String} Sentence with given message.text
     */
    init: function(msg) {
      this._cacheElements();
      return "Say " + msg.text;
    }
  };

  return /** @alias module:Foo */ {
    /** init */
    init: Foo.init
  };
});

enter image description here

于 2015-04-20T14:02:24.297 回答