util.augment

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

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

Returns прототип дочернего класса.

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

Параметры:

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

Тип: Function

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

ParentClass *

Тип: Function

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

override *

Тип: Object

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

Параметр Значение по умолчанию Описание
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 от ParentClass
ymaps.util.augment(ChildClass, ParentClass, {
    // переопределяем в наследнике метод foo
    foo: function () {
        // Вызываем метод родительского класса
        ChildClass.superclass.foo.call(this);
        alert('Child!');
    }
});