我正在使用Douglas Crockford的design pattern实现私有(private),特权和公共(public)方法。基本上看起来像这样(使用RequireJS):
define(function () {
return function () {
var that = {},
_init = function () {
// "constructor"
},
_privateFn = function () {
return 42;
};
that.publicFn = function () {
return 2 * _privateFn();
};
_init(arguments);
return that;
};
});
但是,我无法让jsdoc toolkit正确解析它。我玩过
@name
和@memberOf
批注(例如here),但是无论我做什么,我都无法显示这些功能。有人知道解决方案吗?
最佳答案
好吧,我终于明白了。这是您的操作方式:
/**
* @name MyModule
* @namespace
*/
define(['MyModule'], (function () {
"use strict";
var Clazz = function (config) {
var that = {},
/**
* @private
* @type number
* @name MyModule#_privateField
* @field
*/
_privateField = 42,
/**
* Returns a private field
*
* @private
* @memberOf MyModule#
*/
_privateFn = function () {
return _privateField;
};
/**
* Uppercases a string value.
*
* @public
* @name MyModule#publicFn
* @function
* @param {string} value The value to uppercase.
*/
that.publicFn = function (value) {
return value.toUpperCase();
};
return that;
}
return Clazz;
}));