@memberof
Содержание
Синтаксис
@memberof <parentNamepath>@memberof! <parentNamepath>
Обзор
Тег @memberof идентифицирует символ-член, относящийся к родительскому символу.
По умолчанию тег @memberof документирует символы-члены как статические члены. Для внутренних и экземпляров членов вы можете использовать пунктуацию области видимости после имени пути или добавить тег @inner или @instance.
Тег «принудительного» @memberof, @memberof!, заставляет объект быть задокументированным как принадлежащим к определённому родителю, даже если он, по-видимому, имеет другого родителя.
Примеры
В следующем примере функция hammer обычно документируется как глобальная функция. Это потому, что она на самом деле является глобальной функцией, но также является членом пространства имён Tools, и именно так вы хотите ее документировать. Решение — добавить тег @memberof:
/** @namespace */
var Tools = {};
/** @memberof Tools */
var hammer = function() {
};
Tools.hammer = hammer;
Для экземпляров членов класса используйте синтаксис «@memberof ClassName.prototype» или «@memberof ClassName#». В качестве альтернативы, вы можете объединить «@memberof ClassName» с тегом «@instance».
/** @class Observable */
create(
'Observable',
{
/**
* This will be a static member, Observable.cache.
* @memberof Observable
*/
cache: [],
/**
* This will be an instance member, Observable#publish.
* @memberof Observable.prototype
*/
publish: function(msg) {},
/**
* This will also be an instance member, Observable#save.
* @memberof Observable#
*/
save: function() {},
/**
* This will also be an instance member, Observable#end.
* @memberof Observable
* @instance
*/
end: function() {}
}
);
Следующий пример использует принудительный тег @memberof, «@memberof!», для документирования свойства объекта (Data#point), которое является экземпляром члена класса (Data).
Когда вы используете тег @property для документирования свойства, вы не можете ссылаться на свойство с помощью его длинного имени. Мы можем принудительно сделать свойство ссылочным, используя «@alias» и «@memberof!», чтобы сообщить JSDoc, что Data#point.y должен быть документирован как член "point.y" «Data#», а не как член "y" "point" «Data#».
/** @class */
function Data() {
/**
* @type {object}
* @property {number} y This will show up as a property of `Data#point`,
* but you cannot link to the property as {@link Data#point.y}.
*/
this.point = {
/**
* The @alias and @memberof! tags force JSDoc to document the
* property as `point.x` (rather than `x`) and to be a member of
* `Data#`. You can link to the property as {@link Data#point.x}.
* @alias point.x
* @memberof! Data#
*/
x: 0,
y: 1
};
}
Связанные ссылки
© 2011–2017 the contributors to the JSDoc 3 documentation project
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://jsdoc.app/tags-memberof.html