util.augment

Статическая функция.

Базовая функция, реализующая наследование в JavaScript. Реализует наследование прототипа без исполнения конструктора родителя. К дочернему классу добавляется поле 'superclass', указывающее на прототип родительского класса, и поле 'constructor', которое указывает на конструктор класса. Через поле 'constructor' объекта 'superclass' можно обратится к конструктору родительского класса.

Возвращает прототип дочернего класса.

{ Object } util.augment(ChildClass, ParentClass, override)

Параметры:

Параметр Значение по умолчанию Описание
ChildClass *

Тип: Function

Дочерний класс.

ParentClass *

Тип: Function

Родительский класс.

override *

Тип: Object

Набор дополнительных полей и функций, которые будут приписаны к прототипу дочернего класса.

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

Пример:

// Родительский класс.
var ParentClass = function (param1, param2) {
    this.param1 = param1;
    this.param2 = param2;
};

ParentClass.prototype = {
    foo: function () {
        alert('Parent!');
    }
};
// Дочерний класс.
var ChildClass = function (param1, param2, param3) {
    // Вызываем конструктор родителя.
    ChildClass.superclass.constructor.call(this, param1, param2);
    this._param3 = param3;
}

// Наследуем ChildClass from ParentClass.
ymaps.util.augment(ChildClass, ParentClass, {
    // Переопределяем у наследника метод "foo".
    foo: function () {
        // Вызываем метод родительского класса.
        ChildClass.superclass.foo.call(this);
        alert('Child!');    }});