Javascript 使用JSDOC记录作用域
我很难用JSDOC来记录作用域,任何人都知道记录以下代码的正确方法: (现在,jsdoc生成全局函数中的所有方法,它们应该属于WorkAreaPlugin)Javascript 使用JSDOC记录作用域,javascript,jquery,jsdoc,Javascript,Jquery,Jsdoc,我很难用JSDOC来记录作用域,任何人都知道记录以下代码的正确方法: (现在,jsdoc生成全局函数中的所有方法,它们应该属于WorkAreaPlugin) 首先,我要指出,用jsdoc记录JavaScript代码通常归结为一个惯例问题,以及您希望如何向阅读文档的人展示JS实体之间的关系。下面是一个可能的答案 以下内容将把所有内容放在一个名称空间中: /** * @namespace Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.
首先,我要指出,用jsdoc记录JavaScript代码通常归结为一个惯例问题,以及您希望如何向阅读文档的人展示JS实体之间的关系。下面是一个可能的答案 以下内容将把所有内容放在一个名称空间中:
/**
* @namespace Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.WorkAreaPlugin
*
*/
(/** @lends Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.WorkAreaPlugin */ function ($, undefined) {
/**
* Description
* @constructor
* @param {} options
*/
var ctor = function (options) {
var self = this;
var _data;
var _new;
var _grids = {};
if (this.setupAjaxCrud) {
this.setupAjaxCrud();
}
$.extend(self,
/** @lends Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.WorkAreaPlugin~ctor# */ {
/**
* Sets the data property of the current scope and setups the set_isDirty and the get_isDirty functions if not exist to the data object
* @param {} data
* @param {} triggerChange
*/
set_data: function (data, triggerChange) {
_data = data || {};
if (!_data.set_isDirty) {
$.setupDirtyFunctions(_data);
}
if (triggerChange !== false) {
self.trigger("dataChanged", [_data, self]);
}
}
});
this.bind("login", function () {
var isDirty = self.isDirty();
if (!isDirty && self.loader && $.isFunction(self.loader.doLoading)) {
self.reload();
}
});
};
StoreOfficeClient.Plugins.Register("workArea", undefined, undefined, ctor);
})(jQuery);
您使用的是什么版本的jsdoc?我不记得曾见过为3.x系列编写的
@scope
。(但文档有时是有缺陷的。)我使用jsdoc3.3.0,我在这里看到了@scope选项:但它对我不起作用。你将如何记录这一点?(即使没有@scope)您看到的文档是针对jsdoc 2.x.ok的,那么如何推荐这样做呢。我忘了早些时候提到这件事了。不要使用JSDOC3.3.0,因为它仍然是alpha和bug,请使用3.2.x系列中的最新版本。(我想你已经看到我提交了一个答案。)jsdoc输出它就像ctor是一个类一样(在类下面有ctor),ctor只是一个构造函数。另外,我不希望它被称为类,我是否有机会告诉jsdoc WorkAreaPlugin是上述名称PCAE中的一个插件?jsdoc对“构造函数”和“类”的概念没有区别。请参阅文档:它的同义词是@class
。jsdoc没有“插件”的概念。您可以将ctor
和set_data
设置为与插件对应的命名空间的常规函数。
/**
* @namespace Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.WorkAreaPlugin
*
*/
(/** @lends Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.WorkAreaPlugin */ function ($, undefined) {
/**
* Description
* @constructor
* @param {} options
*/
var ctor = function (options) {
var self = this;
var _data;
var _new;
var _grids = {};
if (this.setupAjaxCrud) {
this.setupAjaxCrud();
}
$.extend(self,
/** @lends Retalix.StoreOfficeClient.Web.Scripts.General.WorkArea.WorkAreaPlugin~ctor# */ {
/**
* Sets the data property of the current scope and setups the set_isDirty and the get_isDirty functions if not exist to the data object
* @param {} data
* @param {} triggerChange
*/
set_data: function (data, triggerChange) {
_data = data || {};
if (!_data.set_isDirty) {
$.setupDirtyFunctions(_data);
}
if (triggerChange !== false) {
self.trigger("dataChanged", [_data, self]);
}
}
});
this.bind("login", function () {
var isDirty = self.isDirty();
if (!isDirty && self.loader && $.isFunction(self.loader.doLoading)) {
self.reload();
}
});
};
StoreOfficeClient.Plugins.Register("workArea", undefined, undefined, ctor);
})(jQuery);