OpenLayers v4.0.1 API - Class: Object

# Class: Object

This documentation is for OpenLayers v4.0.1. The latest is v.

## ol.Object

Abstract base class; normally only used for creating subclasses and not instantiated in apps. Most non-trivial classes inherit from this.

This extends `ol.Observable` with observable properties, where each property is observable as well as the object as a whole.

Classes that inherit from this have pre-defined properties, to which you can add your owns. The pre-defined properties are listed in this documentation as 'Observable Properties', and have their own accessors; for example, `ol.Map` has a `target` property, accessed with `getTarget()` and changed with `setTarget()`. Not all properties are however settable. There are also general-purpose accessors `get()` and `set()`. For example, `get('target')` is equivalent to `getTarget()`.

The `set` accessors trigger a change event, and you can monitor this by registering a listener. For example, `ol.View` has a `center` property, so `view.on('change:center', function(evt) {...});` would call the function whenever the value of the center property changes. Within the function, `evt.target` would be the view, so `evt.target.getCenter()` would return the new center.

You can add your own observable properties with `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`. You can listen for changes on that property value with `object.on('change:prop', listener)`. You can get a list of all properties with `object.getProperties()`.

Note that the observable properties are separate from standard JS properties. You can, for example, give your map object a title with `map.title='New title'` and with `map.set('title', 'Another title')`. The first will be a `hasOwnProperty`; the second will appear in `getProperties()`. Only the second is observable.

Properties can be deleted by using the unset method. E.g. object.unset('foo').

#### new ol.Object(opt_values)

src/ol/object.js, line 55

  Name | Type | Description
  --- | --- | ---
  `values` | Object.<string, *> | An object with key-value pairs.

  ##### Fires:

  - `change` (ol.events.Event) - Generic change event. Triggered when the revision counter is increased.
  - `propertychange` (ol.Object.Event) - Triggered when a property is changed.

### Subclasses

- ol.Collection
- ol.control.Control
- ol.DeviceOrientation
- ol.Feature
- ol.Geolocation
- ol.geom.Geometry
- ol.interaction.Interaction
- ol.layer.Base
- ol.Map
- ol.Overlay
- ol.source.Source
- ol.View

### Extends

- ol.Observable

### Classes

Event

### Methods

#### changed() inherited

src/ol/observable.js, line 58

  Increases the revision counter and dispatches a 'change' event.

#### dispatchEvent(event) inherited

src/ol/observable.js, line 75

  Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a `type` property.

  Name | Type | Description
  --- | --- | ---
  `event` | Object | ol.events.Event | string | Event object.

#### get(key){*}

src/ol/object.js, line 101

  Gets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.

  ##### Returns:

  Value.

#### getKeys(){Array.<string>}

src/ol/object.js, line 115

  Get a list of object property names.

  ##### Returns:

  List of property names.

#### getProperties(){Object.<string, *>}

src/ol/object.js, line 125

  Get an object of all property names and values.

  ##### Returns:

  Object.

#### getRevision(){number} inherited

src/ol/observable.js, line 84

  Get the version number for this object. Each time the object is modified, its version number will be incremented.

  ##### Returns:

  Revision.

#### on(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 99

  Listen for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### once(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 124

  Listen once for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### set(key, value, opt_silent)

src/ol/object.js, line 150

  Sets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `value` | * | Value.
  `silent` | boolean | Update without triggering an event.

#### setProperties(values, opt_silent)

src/ol/object.js, line 170

  Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).

  Name | Type | Description
  --- | --- | ---
  `values` | Object.<string, *> | Values.
  `silent` | boolean | Update without triggering an event.

#### un(type, listener, opt_this) inherited

src/ol/observable.js, line 147

  Unlisten for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object which was used as `this` by the `listener`.

#### unset(key, opt_silent)

src/ol/object.js, line 184

  Unsets a property.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `silent` | boolean | Unset without triggering an event.