Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2012, 21:25
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

событие объекта
Есть строение, вроде верно описал:

var Animal = function (){
 this.x = 0;
};
Animal.prototype.start = function (x) {
 this.x = x;
}
Animal.prototype.stop = function (x) {
 this.x = x;
}
Animal.protorype.mouseDown = function () {

}
//... вешаем обработчики клика и т.д.
// белка стартует по клику мыши

var belka = new Animal();


Можно ли повесить кроссбраузерно на белку обработчик события чтобы узнавать this.x, кроме watch. Или каким-то образом расширить mouseDown не трогая исходный код Animal?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2012, 22:17
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

может быть, setter ?
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2012, 22:43
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от Gozar
чтобы узнавать this.x
а когда именно вам нужно его узнавать
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2012, 22:44
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от melky
может быть, setter ?
я и так могу в любой момент вызвать belka.x.

Сообщение от Раед Посмотреть сообщение
а когда именно вам нужно его узнавать
А вот это правильный вопрос. Когда он измениться. А измениться он когда сработает Animal.prototype.mouseDown.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 04.04.2012 в 22:50.
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2012, 23:16
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Может как-то так?
function dekor() {
var back = Animal.prototype.mouseDown;
Animal.prototype.mouseDown = function() {
//чё-то делаете
back()
//чё-то делаете
}
}
dekor()
Ответить с цитированием
  #6 (permalink)  
Старый 04.04.2012, 23:31
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Раед Посмотреть сообщение
Может как-то так?
Ась? Ты же мне mouseDown затёр.
начнем с места:
var belka = new Animal();

Дальше пиши что хочешь, до этого момента писать ничего нельзя.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2012, 23:56
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от melky
может быть, setter ?
скорее геттер)

Gozar, очередная задачка на слом мозга) Признаться, не совсем понял, зачем
Сообщение от Gozar
узнавать this.x
если
Сообщение от Gozar
я и так могу в любой момент вызвать belka.x.

Вариант "подмены" метода belka.mouseDown не рассматривается?
belka.mouseDownDown = function () {
	belka.mouseDown();
	alert( belka.x );
};
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2012, 00:30
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от nerv_ Посмотреть сообщение
Вариант "подмены" метода belka.mouseDown не рассматривается?
Нет.

Никаких геттеров и сеттеров.

Нужно выполнить функцию(одну или десять) по событию Animal.prototype.mouseDown
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2012, 00:37
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Когда мы делаем var belka = new Animal();
Белка оживает. Мы не знаем когда она побежит или остановиться. Но нам также нельзя вешать отлов событий на DOM.

Мне тут уже подсказали что простым способом это вроде сделать нельзя. Так что можно особо голову не ломать.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2012, 01:07
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Proxy в ближайшем будущем)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Скрипт вычисления координат объекта banderasantonio197555 Events/DOM/Window 4 16.08.2011 17:37
событие для объекта Д-3210 Общие вопросы Javascript 4 15.12.2010 10:31
Как в событие объекта передать свойство метода DVVID Events/DOM/Window 8 22.02.2010 12:30
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00