Всем привет!
Я не силен в JS, но так получилось, что играясь с ExtJS написал код, который работает =) Но теперь я не могу понять почему и как? =)
Вот непонятный мне кусок:
Ext.define('MHCalendar.view.CalendarGrid', {
extend: 'Ext.panel.Panel',
calendar: new Ext.calendar.panel.Month(),
initComponent: function () {
this.callParent();
var calendar = this.calendar;
var btnNext = new Ext.button.Button({
text: '>',
handler: function () {
calendar.nextMonth();
}
});
var btnPrev = new Ext.button.Button({
text: '<',
handler: function () {
calendar.previousMonth();
}
});
this.add(this.calendar, btnPrev, btnNext);
}
});
Непонятность в том, каким образом засунув локальную переменную calendar в handler она продолжает существовать после инициализации и нормально отрабатывает при нажатии на кнопку?
Там как-то указатель остается или что? Поясните пожалуйста.
ПС: Я тут кое что лишнее убрал из кода, чтобы поменьше было. Кнопки на самом деле в отдельном контейнере добавляются.