# @actualwave/event-dispatcher 中文文档

规范地址：https://npmcn.com/package/%40actualwave/event-dispatcher/

版本：1\.3\.3
npm 元数据更新时间：2026-05-03T21:26:23.720Z
中文译文更新时间：2026-11-09T22:07:39.277Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40actualwave/event-dispatcher
原文对照：https://npmcn.com/package/%40actualwave/event-dispatcher/?lang=original
项目主页：https://github.com/burdiuz/js-event-dispatcher
源码仓库：https://github.com/burdiuz/js-event-dispatcher

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：52.8 kB，17 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2018-04-08T10:22:34.605Z
- 最新版本发布：2026-05-03T21:24:53.456Z
- 近 30 天下载量：1709（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 3 个）

## 中文简介

Event Dispatcher是一个JavaScript类,它向自定义对象添加事件支持.

## 安装

```sh
npm install @actualwave/event-dispatcher
```

也可以使用：`pnpm add @actualwave/event-dispatcher`、`yarn add @actualwave/event-dispatcher`、`bun add @actualwave/event-dispatcher`

## README

# 事件发送者

[![Build Status](https://travis-ci.org/burdiuz/js-event-dispatcher.svg?branch=master)](https://travis-ci.org/burdiuz/js-event-dispatcher) [![Coverage Status](https://coveralls.io/repos/github/burdiuz/js-event-dispatcher/badge.svg?branch=master)](https://coveralls.io/github/burdiuz/js-event-dispatcher?branch=master)

只是另一个事件 发送者/[事件目标](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget) 执行.

## 安装

易于安装 [无](https://www.npmjs.com/) 软件包管理器

```javascript
npm install --save @actualwave/event-dispatcher
```

与 [线条](https://yarnpkg.com/) 软件包管理器

```javascript
yarn add @actualwave/event-dispatcher
```

## 使用量

> 注意: EventDispatcher 分发包中包含包裹入UMD包装器的包,因此可以使用任意AMD模块加载器,节点 `require()` 或无所取.

要开始使用事件Dispatcher, 只是即时化它自己

```javascript
class MyClass {
  constructor() {
    this._dispatcher = new EventDispatcher();
  }
  addListener(handler) {
    this._dispatcher.addEventListener('didSomething', handler);
  }
  doSomething() {
      this._dispatcher.dispatchEvent('didSomething');
  }
}
```

和你的课一起延长

```javascript
class MyClass extends EventDispatcher {
  doSomething() {
    this.dispatchEvent('didSomething');
  }
}
```

即兴表演后 `MyClass`,每一个呼叫 `doSomething()` 将开火事件 `didSomething` 并且每个随附此事件的听众都会被调用事件对象作为参数 .

```javascript
var myObj = new MyClass();
myObj.addEventListener('didSomething', function(event) {
  console.log('My Listener', event.type);
});
myObj.doSomething();
```

添加听众时, 执行顺序与添加的顺序相同 。 要更改顺序, 您可以使用可选 `priority` 参数到 `addEventListener()` 方法.

```javascript
myObj.addEventListener('didSomething', function(event) {
  console.log('Prioritized Listener', event.type);
}, 1);
myObj.doSomething();
```

默认优先级设定为0,您可以指定更高优先级 > 0或更低的 < 0,仅允许整数值.

射击事件,你应该使用 `dispatchEvent()` 方法,可以用三种方式: 您只能通过事件类型字符串 。 在此情况下, 对象将由 `EventDispatcher`

```javascript
var dispatcher = new EventDispatcher();
dispatcher.dispatchEvent('eventType');
```

用事件类型, 您可以指定任何数据, 作为第二个参数, 数据应该随事件一起传递

```javascript
dispatcher.addEventListener('eventType', function(event) {
  console.log('My Listener', event.type, event.data);
});
dispatcher.dispatchEvent('eventType', {myData: 'something'});
```

您也可以通过事件对象, 它必须包含 `type:String` 属性

```javascript
dispatcher.dispatchEvent({type: 'eventType', data: 'data is optional'});
```

如果您想要完全控制事件Dispatcher的起火事件, 您可以指定事件预处理器功能, 在事件发射前会为每次事件调用 。 3⁄4 ̄ ̧漯B.

```javascript
function eventPreprocessor(event){
  event.data = event.data || {};
  return event;
}
var dispatcher = new EventDispatcher(eventPreprocessor);
dispatcher.dispatchEvent('eventType');
```

`eventPreprocessor()` 函数将随事件对象调用,返回对象将被使用.

项目实例 `example` 文件夹。 首先尝试实例运行服务器

```javascript
npm run server
```

接下来去 [http://localhost:8081/index.html (中文(简体) )](http://localhost:8081/index.html)

## API 密码

### 事件发送者

-   **添加事件倾听器**(事件Type:String,收听者:Function,优先级:int=0):void - 在事件类型中添加收听者. 此外,还可以设定优先级,更高的值允许调用听众在他人之前,更低 -- -- 之后。 同一收听器可以使用不同的优先级添加到事件类型. 默认为0.
-   **有事件收听器**(eventType:String):void - 检查是否在事件类型中添加了收听器.
-   **删除事件收听器**(eventType:String,收听者:Function):void - 从指定类型的事件中删除事件收听者.
-   **删除全部事件收听器**(eventType: String): void - 从指定类型的事件中删除所有听众.
-   **发送事件**(事件Type:String,数据:Object=null):void - 调度事件 `eventType` 通过 `data`。将创建内置类事件的对象,并将其传递给听众作为第一个参数.
-   **发送事件**(事件:Object:void - 事件对象应该被发射,可以是任何物体. 只有要求 -- -- 它必须包含字段 `type` 带有事件类型.

事件Dispatcher 构建器接受可选参数 `eventPreprocessor(event:Object):Object`,该函数接收事件对象作为参数,并应当返回同一或新的/已更改的事件对象,这些对象将传递给事件听众.

### 活动

内设班级代表已发送事件. 事件类的对象用于调用调度 Event () 方法时 `eventType`。 。 。 .

-   **类型**: string - 事件类型.
-   **数据**: 对象 - 数据对象传递给 `EventDispatcher.dispatchEvent()` 方法.
-   **默认**(:void - 将会将"被防止"的旗帜从FALSE改为TRUE,可以通过 `isDefaultPrevented()` 方法.
-   **已默认**(:Boolean - 如果 `preventDefault()` 被调用.

任何事件(内置事件类别或作为事件传递的任何其他物体的发生)在发送时都会获得额外的方法. 周期完成后,这些方法将从事件对象中移除.

-   **停止预览**(:void) - 处理所有同样优先的收听者后停止事件传播.
-   **立即停止 Propagation**(:void) - 停止当前收听器上的事件传播.

## Claude/ AI 特工Skill

这个软件包包括 `SKILL.md` 文件( 编号[代理技能](https://agentskills.io/) 格式),它教AI编码助理如何使用库. 当安装为 npm 依赖时,该技能在 `node_modules/@actualwave/event-dispatcher/dist/SKILL.md` 并且可以被克洛德代码或任何相容的代理来加载,以获得准确,最新的使用指导而无需依赖训练数据.

> 写为 [堆叠编辑](https://stackedit.io/)。 。 。 .

## 常见问题

### @actualwave/event-dispatcher 是什么？

Event Dispatcher是一个JavaScript类,它向自定义对象添加事件支持\.

### 如何安装 @actualwave/event-dispatcher？

在项目目录运行 npm install @actualwave/event-dispatcher，或使用 pnpm add / yarn add / bun add。

### @actualwave/event-dispatcher 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @actualwave/event-dispatcher 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @actualwave/event-dispatcher 可以商用吗？

@actualwave/event-dispatcher 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @actualwave/event-dispatcher 的下载量有多少？

根据 npm 官方下载统计，@actualwave/event-dispatcher 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,709 次，日均约 57 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @actualwave/event-dispatcher 还在维护吗？

最新版本 1\.3\.3 发布于 2026/05/04（6 个月前）；至今共发布 8 个版本，其中过去 12 个月发布了 3 个；首次发布于 2018/04/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

