我正在使用道格拉斯Crockford的
design pattern来实现私人,特权和公共方法.它基本上看起来像这样(使用
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; }));