跳到主要内容

@event

语法

@event <className>#[event:]<eventName>

概述

@event 标记可以触发的事件。典型事件由一个具有一组已定义属性的对象表示。

使用 @event 标记定义特定类型的事件后,可以使用 @fires 标记指示方法可以触发该事件。还可以使用 @listens 标记表明用这个表示来侦听该事件。

JSDoc 会自动将名称空间 event: 前置到每个事件的名称。通常,当链接到另一个 doclet 中的事件时,必须包含此命名空间(@fires 标签是一个特殊的例外,它可以让你忽略命名空间。)

注意:JSDoc 3 使用 @event doclet来记录事件的内容。相反,JSDoc Toolkit 2 使用 @event doclets 来标识在发生同名事件时可以触发的函数。

实例

下面的示例演示如何记录一个 Hurl 类中名为 snowball 事件。该事件包含一个带有单独属性的对象。

将函数调用记录为事件:

/**
* Throw a snowball.
*
* @fires Hurl#snowball
*/
Hurl.prototype.snowball = function() {
/**
* Snowball event.
*
* @event Hurl#snowball
* @type {object}
* @property {boolean} isPacked - Indicates whether the snowball is tightly packed.
*/
this.emit("snowball", {
isPacked: this._snowball.isPacked
});
};

使用一个命名 doclet 来描述一个事件:

/**
* Throw a snowball.
*
* @fires Hurl#snowball
*/
Hurl.prototype.snowball = function() {
// ...
};

/**
* Snowball event.
*
* @event Hurl#snowball
* @type {object}
* @property {boolean} isPacked - Indicates whether the snowball is tightly packed.
*/

相关链接