我正在使用 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;
}));
关于javascript - 让 jsdoc 和 Crockford 的设计模式相处融洽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921034/