【问题标题】:JavaScript annotated documentation (JSDoc): should @memberOf specify "prototype" as well?JavaScript 注释文档 (JSDoc):@memberOf 是否也应指定“原型”?
【发布时间】:2013-11-16 11:09:59
【问题描述】:

例子:

/**
 * @constructor
 * @Returns {AStar}
 */
function AStar() {


};

/**
 * @public
 *
 * Should this be:
 * @memberOf {AStar.prototype}
 * Or: 
 * @memberOf {AStar}
 *
 * @param {Number} startX
 * @param {Number} startY
 * @param {Number} destinationX
 * @param {Number} destinationY
 * @returns {Path}
 */
AStar.prototype.getPath = function(startX, startY, destinationX, destinationY) {
//(...)
};

对于添加到 AStar 原型中的函数“getPath”,如上面截取的代码,是否应在“getPath”函数的注释文档中指定:

@memberOf {AStar.prototype}

@memberOf {AStar}

?

【问题讨论】:

  • 我认为根据这个:usejsdoc.org/tags-memberof.html应该是AStar.prototype。在 AStar 中,您可以拥有 this.position={};,这将是 AStar 的成员。另一个程序员会得出结论,getPath 将由 AStar 实例共享,但不是直接成员。

标签: javascript jsdoc memberof


【解决方案1】:

JavaScript 代码将getPath 声明为AStar 对象的方法。如果您不提供@memberOf 标签,jsdoc 可以自行确定:文档将getPath 列为AStar 对象的方法。所以你不需要使用你在问题中引用的@memberOf 选项。

此外,在您的问题的特定情况下,jsdoc 不会使用您的@memberof 标签除非您使用带有感叹号@memberof! 的表单。如果 jsdoc 认为它比您更了解该方法是什么成员,那么没有标记的表单可以被 jsdoc 忽略。带有感叹号的表单强制 jsdoc 不忽略它。因此,要对文档产生影响,您必须使用 @memberof!

【讨论】:

    猜你喜欢
    • 2015-06-02
    • 2016-05-12
    • 1970-01-01
    • 2010-11-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多