function SlidingMenu(menuId) {
Menu.apply(this, arguments); // (1) Родительский конструктор записывает в объект свойства и методы.
var parentOpen = this.open; // (2)
this.open = function() { // (3)
parentOpen(); // (3.1)
... // (3.2)
};
}
1) Вызов Menu.apply(this, arguments) вызывает функцию-конструктор меню, передавая ей текущий объект this и аргументы.
Она успешно срабатывает, инициализует меню и добавит в this публичные свойства и методы, например this.open.
2) Мы хотим заменить метод this.open() на свой расширенный. Это мы сделаем в следующей строке 3.1, а пока — скопируем родительский метод open в переменную.
Создадим наш собственный this.open(). Он перезапишет тот, который был создан Menu, в строке (1). Чтобы сохранить доступ к старому методу, мы скопировали его в 3.1.
Запустить родительский метод.
Затем наш собственный код…
Комментариев нет:
Отправить комментарий