---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/option.Manager.md
  - https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/jsapi-v2-1/doc/ru/llms.txt

# option.Manager

Расширяет [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md).

Менеджер опций. Позволяет задавать и получать значения опций по строковому ключу, а также разрешать значения опций в контексте существующей иерархии менеджеров опций.

Специальный ключ "preset" позволяет задать набор опций по умолчанию для данного менеджера. Значением опции "preset" может быть хэш вида {"имя опции": "значение опции"}, либо строковый идентификатор хэша опций в хранилище [option.presetStorage](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.presetStorage.md). Данный хэш опций может также содержать поле с именем "preset", что позволяет наследовать значения опций от других наборов.

При поиске значения в иерархии сначала проверяются собственные опции, затем опции заданные с помощью ключа "preset", после чего происходит обращение к родителю, если он есть.

Для отслеживания изменений некоторых опций можно использовать [Monitor](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Monitor.md).

[Конструктор](#constructor-summary) | [Поля ](#properties-summary) | [События ](#events-summary) | [Методы ](#methods-summary)

## Конструктор {#constructor-summary}

```javascript
option.Manager([options[, parent[, name]]])
```

Создает менеджер опций.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`options`](#param-options) | — | Тип: Object

Хэш опций. ||
|| [`parent`](#param-parent) | — | Тип: [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md)

Родительский менеджер опций. ||
|| [`name`](#param-name) | — | Тип: String

Имя менеджера опций. ||
|#


**Примеры:**

**1.**

```javascript
// Пример построения иерархии менеджеров опций.
 var parentManager = new ymaps.option.Manager({
         key1: '123'
     }),
     childManager = new ymaps.option.Manager({
         key2: '234'
     }, parentManager);
 // Выведет 123. значение берется из manager1.
 alert(childManager.get('key1'));
 // Выведет 234. значение берется из manager2.
 alert(childManager.get('key2'));
 // Перекрываем опцию.
 childManager.set('key1', '345');
 // Выведет 345, значение берется из manager2.
alert(childManager.get('key1'));
// Выведет 123, значение берется из manager1.
alert(parentManager.get('key1'));
```

**2.**

```javascript
// Пример использования опции "предустановка".
var optionManager = new ymaps.option.Manager({
    preset: 'islands#blueIcon'
});
var subOptionManager = new ymaps.option.Manager();
// Там нет данных, потому что subOptionManager пуст.
alert(subOptionManager.get('iconImageSize');
// Связывание двух менеджеров.
subOptionManager.setParent(optionManager);
// [37, 42] - значение берется из пресета в Родительском менеджере.
alert(subOptionManager.get('iconImageSize');
// Переопределение значения iconImageSize на уровне subOptionManager.
subOptionManager.set('iconImageSize', [10, 12]);
// [10, 12] - значение берется из subOptionManager.
alert(subOptionManager.get('iconImageSize');
// Отмена переопределения iconImageSize.
subOptionManager.unset('iconImageSize');
// [37, 42] - значение снова берется из пресета в Родительском менеджере.
alert(subOptionManager.get('iconImageSize'));
```

## Поля {#properties-summary}

#|
|| **Имя** | **Тип** | **Описание** ||
||  [events](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#events) | [IEventManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventManager.md) | Менеджер событий объекта.

Унаследовано от [IFreezable](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#events). ||
|#

## События {#events-summary}

#|
|| **Имя** | **Описание** ||
|| [change](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#event-change) | Изменения произошли в значениях опций, либо в иерархии наследования опций. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). ||
|| [parentchange](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IChild.md#event-parentchange) | Сменился родительский объект.

Поля данных:

- oldParent - старый родитель;
- newParent - новый родитель.

Унаследовано от [IChild](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IChild.md#event-parentchange). ||
|#

## Методы {#methods-summary}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [freeze](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#freeze)() | [IFreezable](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md) | Переводит объект в "замороженный" режим.

Унаследован от [IFreezable](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#freeze). ||
|| [get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#get)([key](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#get-param-key)[, [defaultValue](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#get-param-defaultValue)]) | | Возвращает значение заданной опции в контексте существующей иерархии наследования опций. При вызове данного метода сначала происходит поиск значения в текущем менеджере опций, а затем, если значение не определено, поиск продолжается в иерархии родительских менеджеров.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#get). ||
|| [getAll](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getAll)() | Object | Возвращает ссылку на внутренний хэш хранящий значения опций.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getAll). ||
|| [getName](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getName)() | String | Возвращает имя менеджера опций.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getName). ||
|| [getNative](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getNative)([key](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getNative-param-key)) | Object | Возвращает значение заданной опции, определенное на данном уровне иерархии опций, т.е. в данном менеджере.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getNative). ||
|| [getParent](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getParent)() | [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md)\|null | Возвращает родительский менеджер опций.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#getParent). ||
|| [isFrozen](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#isFrozen)() | Boolean | Возвращает true, если объект находится в "замороженном" режиме, иначе false.

Унаследован от [IFreezable](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#isFrozen). ||
|| [resolve](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#resolve)([key](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#resolve-param-key)[, [name](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#resolve-param-name)]) | Object | Метод, предназначенный для вызова дочерними менеджерами опций.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#resolve). ||
|| [set](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#set)([key](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#set-param-key)[, [value](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#set-param-value)]) | [option.Manager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md) | Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:
- один аргумент, представляющий собой хеш вида {"имя опции": "значение опции"};
- два аргумента, первый из которых - имя опции, второй - значение. ||
|| [setName](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#setName)([name](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#setName-param-name)) | | Задает имя менеджера опций.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#setName). ||
|| [setParent](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#setParent)([parent](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#setParent-param-parent)) | [IChild](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IChild.md) | Задает родительский менеджер опций.

Унаследован от [IOptionManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IOptionManager.md#setParent). ||
|| [unfreeze](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#unfreeze)() | [IFreezable](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md) | Переводит объект в активный режим.

Унаследован от [IFreezable](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IFreezable.md#unfreeze). ||
|| [unset](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#unset)([keys](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#unset-param-keys)) | [option.Manager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md) | Стирает значения заданных опций в данном менеджере. ||
|| [unsetAll](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md#unsetAll)() | [option.Manager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/option.Manager.md) | Стирает значения всех опции в данном менеджере. ||
|#

## Описание событий {#event_detail}

### change {#change}

Изменения произошли в значениях опций, либо в иерархии наследования опций. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md).

## Описание методов {#method_detail}

### set {#set}

```javascript
{option.Manager} set(key[, value])
```

Задает значения опций для данного менеджера. Поддерживаются две сигнатуры:
- один аргумент, представляющий собой хеш вида {"имя опции": "значение опции"};
- два аргумента, первый из которых - имя опции, второй - значение.

**Возвращает** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`key`](#set-param-key)[*](*star) | — | Тип: Object\|String

Имя опции, либо хеш вида {"имя опции": "значение опции"}. ||
|| [`value`](#set-param-value) | — | Тип: Object

Значение опции, если в качестве первого аргумента было передано имя. ||
|#

\* Обязательный параметр/опция.

**Примеры:**

**1.**

```javascript
// Задание нескольких опций через хэш.
myMap.options.set({
    dblClickZoomCentering: true,
    dblClickFloatZoom: true
});
// Генерируется одно событие option.Manager.event:change.
```

**2.**

```javascript
// Задание опций раздельно.
myMap.options
    .set("dblClickZoomCentering", true)
    .set("dblClickFloatZoom", true);
// После каждого set будет генерироваться событие option.Manager.event:change.
```

**3.**

```javascript
// Использование freeze для минимизации количества событий option.Manager.event:change.
myMap.options.freeze();
myMap.options.set({
    dblClickZoomCentering: true,
    dblClickFloatZoom: true
});
myMap.options.set('cursor', 'zoom');
myMap.unfreeze();
// Генерируется одно событие option.Manager.event:change.
```

### unset {#unset}

```javascript
{option.Manager} unset(keys)
```

Стирает значения заданных опций в данном менеджере.

**Возвращает** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`keys`](#unset-param-keys)[*](*star) | — | Тип: String\|String[]

Имя опции или массив имен опций, значения которых должны быть аннулированы. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
map.options.unset(['dblClickZoomCentering', 'dblClickFloatZoom']);
```

### unsetAll {#unsetAll}

```javascript
{option.Manager} unsetAll()
```

Стирает значения всех опции в данном менеджере.

**Возвращает** ссылку на себя.

**Пример:**

```javascript
var geoObject = new ymaps.Placemark([37, 55], {}, {preset:'islands#blueIcon'});
myMap.geoObjects.add(geoObject);
// Изменение стиля, как мы хотим.
geoObject.options.set({
    iconLayout: 'default#image',
    iconImageHref: 'http://mysite.ru/icon.png',
    iconImageSize: [16, 16]
});
// Восстановление первоначального внешнего вида
geoObject.options
    // Чтобы избежать двойной реакции объекта geo
     // чтобы опция изменилась, сначала мы вызываем "заморозку", а затем после
    // установив все значения, мы называем их "разморозкой".
    .freeze()
    .unsetAll()
    .set('preset','islands#blueIcon')
    .unfreeze();
```

<!-- XLIFF_FARM_OWZmMjFm_CACHING -->

[*star]: Обязательный параметр.