# EventHandle

Class · category: Framework

Source: https://github.com/playcanvas/engine/blob/f059dc005842f76e052cdf44d8370c8c7ec475ac/src/core/event-handle.js#L34

Event Handle that is created by [EventHandler](https://api.playcanvas.com/engine/classes/EventHandler.md) and can be used for easier event removal
and management.

**Example**

```ts
const evt = obj.on('test', (a, b) => {
    console.log(a + b);
});
obj.fire('test');

evt.off(); // easy way to remove this event
obj.fire('test'); // this will not trigger an event
```

**Example**

```ts
// store an array of event handles
let events = [];

events.push(objA.on('testA', () => {}));
events.push(objB.on('testB', () => {}));

// when needed, remove all events
events.forEach((evt) => {
    evt.off();
});
events = [];
```

## Constructors

### constructor

```ts
new EventHandle(handler: EventHandler, name: string, callback: HandleEventCallback, scope: any, once?: boolean)
```

**Parameters**

- `handler` ([`EventHandler`](https://api.playcanvas.com/engine/classes/EventHandler.md)): source object of the event.
- `name` (`string`): Name of the event.
- `callback` ([`HandleEventCallback`](https://api.playcanvas.com/engine/types/HandleEventCallback.md)): Function that is called when event is fired.
- `scope` (`any`): Object that is used as `this` when event is fired.
- `once` (`boolean`, optional, default `false`): If this is a single event and will be removed after event is fired.

## Methods

### off

```ts
off(): void
```

Remove this event from its handler.
