加载中...

@memberof


描述: 标明这个标识属于哪个父级标识。

语法

  • @memberof <parentNamepath>
  • @memberof! <parentNamepath>

概述

@memberof标签标明成员隶属于哪一个父级标识符。

默认情况下,@memberof标签标注的标识符是静态成员。对于内部成员和实例成员,你可以使用对应名称路径的符号,或明确标注@inner或 @instance标签。

“强制的”@memberof标签,@memberof!强制对象被记录为属于特定的父级标识符,即使它有不同的父级标识符。

例子

在下面的例子中,hammer函数通常会被描述为一个全局性的函数。事实上,它就是一个全局性的函数,但同事它也是Tools命名空间的一个成员,而这才是你想描述的。解决方案就是增加一个@memberof标签。

例如,使用@memberof:

  1. /** @namespace */
  2. var Tools = {};
  3. /** @memberof Tools */
  4. var hammer = function() {
  5. };
  6. Tools.hammer = hammer;

对于类的实例成员,可以使用语法:"@memberof ClassName.prototype" 或者 "@memberof ClassName#"。另外也可以组合使用"@memberof ClassName"和"@instance" 达到同样的效果。

例如,在类原型上使用@memberof:

  1. /** @class Observable */
  2. create(
  3. 'Observable',
  4. {
  5. /**
  6. * This will be a static member, Observable.cache.
  7. * @memberof Observable
  8. */
  9. cache: [],
  10. /**
  11. * This will be an instance member, Observable#publish.
  12. * @memberof Observable.prototype
  13. */
  14. publish: function(msg) {},
  15. /**
  16. * This will also be an instance member, Observable#save.
  17. * @memberof Observable#
  18. */
  19. save: function() {},
  20. /**
  21. * This will also be an instance member, Observable#end.
  22. * @memberof Observable
  23. * @instance
  24. */
  25. end: function() {}
  26. }
  27. );

下面的示例使用强制@memberof标签,“@memberof!”,来描述对象(Data#point)的属性,它是一个类(Data)的实例成员。

当您使用@property标签记录一个属性的时候,则无法使用其longname连接到这个属性。我们可以使用 "@alias" 和 "@memberof!" 来强制属性为可连接,告诉JSDoc Data#point.y 应记录为 "Data#" 的成员"point.y"而不是"Data#"的"point"中的一员"y"。

例如,为对象属性使用@memberof!:

  1. /** @class */
  2. function Data() {
  3. /**
  4. * @type {object}
  5. * @property {number} y This will show up as a property of `Data#point`,
  6. * but you cannot link to the property as {@link Data#point.y}.
  7. */
  8. this.point = {
  9. /**
  10. * The @alias and @memberof! tags force JSDoc to document the
  11. * property as `point.x` (rather than `x`) and to be a member of
  12. * `Data#`. You can link to the property as {@link Data#point.x}.
  13. * @alias point.x
  14. * @memberof! Data#
  15. */
  16. x: 0,
  17. y: 1
  18. };
  19. }

还没有评论.