Показать сообщение отдельно
  #1 (permalink)  
Старый 29.02.2012, 17:46
Новичок на форуме
Отправить личное сообщение для SuperDennis Посмотреть профиль Найти все сообщения от SuperDennis
 
Регистрация: 29.02.2012
Сообщений: 3

Передача события обработчику внутри класса
Всем привет.

Пишу игру на JS. Пишу на чистом JS с использованием jQuery для облегчения многих задач. Написал класс для объекта карты Map:

var Map = function (map) {
	this.map = $(map);
};

// Place object on the map
Map.prototype.addObject = function(object_id) {
	this.map.append('<div id="' + object_id + '" />');
};

// Map events handler
Map.prototype.on = function (event, handler) {
	this.map.live(event, function (e) {
		handler(e);
	});
};


Далее создаю карту и хочу реализовать при клике добавление объекта в указанную точку карты (принимаем во внимание, что в body существует элемент <div id="map"></div>):

var map = new Map('#map');

map.on('click', function (e) {
	// Place tower on the map
	this.addObject('tower', {
		'left' : e.pageX,
		'top' : e.pageY
	});
});


Проблема: Хочу реализовать так, чтоб this во втором куске кода указывал на объект моего определенного выше типа Map и соответственно вызывал на нем метод addObject() - как этого можно добиться?

П.С. Ведь в jQuery подобное поведение как-то реализовано...
Ответить с цитированием