首页 > 解决方案 > 我应该继续使用对象而不是类吗?JSDocs 的一些问题

问题描述

我在尝试生成页面时遇到了一些 JSDoc 问题。我认为问题在于我的代码结构。

我的脚本中有多个对象,如下所示:( 是的,评论是法语的。生成的文档将仅用于一家公司)

/**
 * `Page` contient les méthodes de la page en général _(chargement, évènements du `<header>` et du `<footer>`, ...)_.
 * @version 1.0
 * @type {object}
 * @namespace Page
 */
var Page = {
    /**
     * Récupère les éléments du DOM utilisés par `Page` pour les évènements et le chargement.
     * @memberof Page
     * @function init
     * @return {void}
     * @example
     * Page.init();
     */
    init: function() {...},
    /**
     * Charge les modules de la page _(DataTables, vis-network)_.
     * @memberof Page
     * @function loadModules
     * @return {void}
     * @example
     * Page.init();
     */
    loadModules: function() {...},
    /**
     * Exécute quelques lignes de code juste avant le déchargement de la page.
     * **Attention, cette méthode ne doit pas être appellée.** Elle est automatiquement
     * appellée au déchargement de la page.
     * @memberof Page
     * @function beforeUnload
     * @return {void}
     */
    beforeUnload: function() {...},
    /**
     * Ajoute des évènements sur les éléments du DOM de la page.
     * @memberof Page
     * @function events
     * @return {void}
     * @example
     * Page.events();
     */
    events: function() {...},
    /**
     * Gère le chargement de la page et des différents modules.
     * @memberof Page
     * @type {object}
     * @namespace Page.loading
     */
    /**
     * Cet objet contient les méthodes associées aux éléments du `<header>`.
     * @memberof Page
     * @type {object}
     * @namespace Page.header
     */
    header: {
        /**
         * @memberof Page.header
         * @property {jQuery} navLinks Liens de navigations du `<header>`.
         */
        navLinks: undefined,
        /**
         * Récupère les éléments du `<header>`.
         * @memberof Page.header
         * @function init
         * @param {jQuery} navLinks Éléments du `<header>` ({@link Page.footer.topOfPage}).
         * @return {void}
         * @example
         * Page.header.init();
         */
        init: function(navLinks) {...},
        /**
         * Change le lien sélectionné **uniquement visuellement** _(un lien sélectionné possède un aspect différent)_.
         * @memberof Page.header
         * @function selectLink
         * @param {jQuery} navLink Élément _(`<header> > <a>`)_ que l'ont veux afficher comme "sélectionné". 
         * @return {void}
         * @example
         * Page.header.selectLink(Page.header.navLinks.eq(1));
         */
        selectLink: function(navLink) {...},
        /**
         * Ajoute les évènements du `<header>`.
         * @memberof Page.header
         * @function events
         * @return {void}
         * @example
         * Page.header.events();
         */
        events: function() {...}
    },
    ...
}

每个对象都有其属性和功能。有些属性本身就是一个对象。问题是生成的页面如下所示:

# Nav

1. Page
   a. init
   b. loadModules
   c. beforeUnload
   d. events
2. Header
   a. navLinks
   b. init
   c. selectLink
   d. events
...

我们可以看到它在生成的文档header之外Page,我希望它在里面,因为我有 7 个像这样的其他对象并且文档变得难以使用。

我的问题是由 JSDoc 注释引起的,还是我应该使用对象以外的东西(例如类)?我使用对象是因为脚本变得更易于阅读,并且我可以随时访问每个函数和属性。

我希望我已经把自己说得很清楚了(而且我没有犯太多错误)。祝你今天过得愉快。

标签: javascriptjsdocjsdoc3

解决方案


推荐阅读