Я создаю элемент управления для карт Google v2. При создании своего элемента управления я столкнулся с проблемой проектирования и хочу найти подходящее решение. Вот этот товар.
Пользовательский элемент управления Google наследуется от GControl;
myControl.prototype = new GControl();
Далее мне нужно перегрузить инициализатор, поэтому вот оно.
myControl.prototype.initilize = function (map) {
//do some work and return stuff
};
Теперь в моей пользовательской функции initlize элементов управления я создаю пару элементов, которые с помощью класса GEvent подписываются на различные события. Чтобы сделать мои функции обратного вызова управляемыми, я включил их в прототип элементов управления.
myControl.prototype.onEvent = function(e){
//do some work;
//modify the members of the current myControl instance
};
В моей функции обратного вызова "onEvent" я хочу изменить членов в моем контроле. Каков наилучший способ получить доступ к моему элементу управления из функции? Ключевое слово "this" не может использоваться, потому что это ссылка на элемент, по которому был выполнен щелчок, в моем случае это div. И я не могу получить доступ к членам через прототип, потому что мне нужен конкретный экземпляр объекта. Единственное жизнеспособное решение, которое я рассмотрел, - это создать свой глобальный элемент управления в одном из моих сценариев. Это лучший метод?