javascript - 我应该继续使用对象而不是类吗?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 注释引起的,还是我应该使用对象以外的东西(例如类)?我使用对象是因为脚本变得更易于阅读,并且我可以随时访问每个函数和属性。
我希望我已经把自己说得很清楚了(而且我没有犯太多错误)。祝你今天过得愉快。
解决方案
推荐阅读
- promise - 链接 Promises 时的外部变量访问
- c# - How to detect if another application's audio is playing in background? (UWP, Windows 10)
- batch-file - 通过在文件中查找字符串来重命名文件
- mongodb - 更新流星中的特定字段
- reactjs - React Native Navigation - 屏幕的多个实例
- r - Rtools 3.5 not recognized?
- javascript - 为什么lodash有gt、lt、gte、lte函数?
- primavera - Primavera P6 - 存储项目开始/结束日期的位置
- java - 有没有办法限制 .getId()
- mysql - MySQL only_full_group_by error