我正在尝试使用JSDoc-toolkit记录我的代码.我的代码首先包含一个自执行的匿名函数.我怎么在世界上记录这个?我几乎整天都在这上面.JS Docs不会识别匿名函数闭包内部的任何内容,因为它不知道如何处理它.它打破了,我的评论都没有通过.
我的代码看起来像这样.
/**
* @fileoverview BLA BLA BLA
*/
/**
* This is where I don't know what to put.
*/
(function () {
"use strict";
/** or here */
var stlib = function (param, param, param) {
/** or here */
var share = {
/** or here */
config: {
button: DOM Element,
property: blablabla
},
init: function () { ...some init code here}
};
share.init();
};
widgets.add("share", stlib);
}());
Run Code Online (Sandbox Code Playgroud)
谢谢!
感谢这里找到的答案:
我的JavaScript文档组织良好,格式正确.每个命名空间都是其中包含的方法的"父".但是,导航并不像我想的那样精细.
通过简单的命令(jsdoc file1.js file2.js)使用node.js工具编译/渲染后,文档将生成为默认模板.此默认模板在侧栏导航中显示我的命名空间,但它不显示每个包含的方法.
您可以通过向@class每个方法添加指令来伪造方法列表,但正如我们所知,它们实际上不是类.
我很想看到像这样的侧边栏导航:
My Project
- namespace 1
- method.a
- method.b
- method.c
-namespace 2
- method.d
- method.e
Run Code Online (Sandbox Code Playgroud)
任何我忽略的文档方向都将不胜感激.
[编辑添加:]
通过实验,@class几乎完全符合我的要求,但有一些例外:
它列出了名称空间之上的类.我不喜欢这样,因为名称空间是"父母".
JavaScript在这个意义上没有类.不是那种被称为"类"的命名法.在阅读文档以查看"类"列表时,它会创建一个奇怪的断开连接.
它自动添加"新"运算符.并非所有方法都有构造函数......你可以看到问题!
[编辑:示例代码]
所以这是目前的结构.在我使用JSDoc注释对其进行注释之前,这是基本方法:
var app = app || {};
app.utils = {
whizbang: function() {},
geegolly: function() {}
};
app.render = {
thestuff: function(params) {},
thethings: function(params) {}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,使用对象文字表示法,顶级是整个应用程序的"命名空间",但在其中有用于不同目的的子命名空间.在这里,我有一个特定于实用程序的子命名空间,另一个特定于渲染的子命名空间.每个都可以有属性,但更重要的是它们都包含函数.这些功能应出现在侧边栏中.现在用我目前的JSDoc模式充实它:
/**
* @file MyApp.js This is an awesome description of MyApp.js
*
* …Run Code Online (Sandbox Code Playgroud) 我在使用JSDoc3来记录按照这些方式构建的代码时遇到了麻烦
/**
* @namespace MyNamespace.MySubNamespace
*/
(function (MyNamespace) {
MyNamespace.MySubNamespace.Foo = {
doSomething: function (someParam) {
// doing it
}
}
})(window.MyNamespace)
Run Code Online (Sandbox Code Playgroud)
我如何使用JSDoc3来记录MyNamespace包含MySubNamespace哪些内容Foo?而且我将如何关联doSomething与Foo和记录它的参数someParam?
一个限制我的是,我不能添加到文档中的文件MyNamespace和MySubNamespace声明.
非常感谢!