我绝对是 JSDoc 和类似 Javadoc 的约定的新手;我正在寻找一些容易实现的目标来启动和运行,但我做不到了。
我的代码是这样组织的,主要是个人风格:
var app = app || {};
app.ui = {
someUIfunction: function() {},
someUIparams: {},
anotherFunction: function(string, object) {}
}
app.rest = {
someRESTCall: function(url,data) {},
someRESTparams: {},
moreRESTCall: function(url,data) {}
}
从理论上讲,一切都可能只是“应用程序”下的一个整体对象,但我喜欢单独分解下一级对象,以便在 IDE 中方便地进行冷折叠和搜索。另外,这样对我来说感觉很整洁。
我无法做到的是深入研究第三级功能和对象。JSDoc3 似乎不想为我呈现它;此外,我不喜欢将“应用程序”(或者我最后给应用程序的任何内容)作为名称空间的起始页面......我希望它的成员也可以在索引中。这是我的尝试(原谅愚蠢的例子!):
/**
* Application Namespace for this marvellous application
*
* @namespace app
*/
var app = app || {};
/**
* An object containing methods and parameters used for UI presentation logic
*
* @type {object}
* @memberOf app
* @property {string} title - a string used as the title of the UI
* @property {function} init - a function to initialize the UI
*/
app.ui = {
// not bothering to document this for whatever reason
title: "some title",
/**
* @memberOf app.ui
* @params {object} params - an object containing necessary initialization parameters
*/
init: function(params) {
// some initialization logic
}
}
有两个问题:
理想情况下,我希望 app.ui 拥有自己的页面。@namespace 是正确的方法吗?它可以工作,但在视觉上它在索引中伪装成与应用程序本身处于同一级别。
app.ui.init 根本没有记录。
在我看来(诚然,这可能只是无知!)如果我使用 JSDoc3 会更开心:
app.ui.init = function() {} // (etc)
但就我而言,这将是相当丑陋的。我需要用来指示嵌套成员的任何语法指针都是我所追求的。