我将如何在闭包中注释这个名为 bar 的私有函数?
var Foo = (function() {
var fn = (function() {
return {
bar: function(baz) {
alert(baz);
}
};
})();
return {
doBar: function(label) {
fn.bar(label);
}
}
});
像这样?
/**
* @type {function(string): string}
* @private
*/
bar: function(baz) {
return baz;
}
还是像这样?
/**
* @param {string}
* @private
* @return {string}
*/
bar: function(baz) {
return baz;
}
或者甚至是两个文档的组合?但是我会重复我认为的函数参数和返回类型的信息。
/**
* @param {string}
* @private
* @type {function(string): string}
* @return {string}
*/
bar: function(baz) {
return baz;
}
整个闭包示例的完整 jsDoc 示例。“私人”功能不再有@private jsDoc(如“约翰”所说)。
/**
* @type {function(): Object}
* @public
*/
var Foo = (function() {
/**
* @type {function(): Object}
* @private
*/
var fn = (function() {
return {
/**
* @param {string} baz Something to alert
*/
bar: function(baz) {
alert(baz);
}
};
})();
return {
/**
* @param {string} label A label string
* @public
*/
doBar: function(label) {
fn.bar(label);
}
}
});