Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.03.2010, 15:59
Новичок на форуме
Отправить личное сообщение для Scalar Посмотреть профиль Найти все сообщения от Scalar
 
Регистрация: 24.03.2010
Сообщений: 2

Как узнать у какого объекта вызван метод.
Допустим, есть некий класс A с методом B
A.prototype=
{
   B:function()
   {
         link2object=this;
   }
}


Логически веб-приложении организовано так - метод B вызывается у объекта при нажатии на ссылку. К ссылке динамически привязывается обработчик:

/*JQuery code*/
$("#link").click(someobject.B);


Проблема, что когда метод назначен обработчиком события нажатия на ссылку - внутри него this-это указатель на DOM-элемент (ссылку), а не на экземпляр класса A.
Как в таком случае узнать к какому экземпляру привязан метод B, т.е. получить ссылку на объект someobject ?
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2010, 16:01
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/tutorial/object...ord#apply-call
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2010, 16:11
Новичок на форуме
Отправить личное сообщение для Scalar Посмотреть профиль Найти все сообщения от Scalar
 
Регистрация: 24.03.2010
Сообщений: 2

Не очень понятно при чем тут apply/call. В комментариях к статье, есть похожий вопрос, но решения там нет.

Впрочем меня самого только что осенило - ссылку на объект можно сохранять в свойстве объекта-DOM-элемента-ссылки.
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2010, 16:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Scalar
Не очень понятно при чем тут apply/call
Вызывать функцию нужно в контексте нужного объекта, а не в функции догадываться, какой бы объект заюзать.
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2010, 11:10
Новичок на форуме
Отправить личное сообщение для alerion Посмотреть профиль Найти все сообщения от alerion
 
Регистрация: 24.03.2010
Сообщений: 2

http://api.jquery.com/jQuery.proxy/
Вот вроде то что вам нужно и на jQuery.
В вашем случае:
$("#link").click( jQuery.proxy( someobject, "B" ) ); // this == someobject

Последний раз редактировалось alerion, 26.03.2010 в 11:12.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Подскажите как узнать существует ли объект в памяти? Yazla Общие вопросы Javascript 2 05.11.2009 20:05
как узнать тип значения объекта? VHS Общие вопросы Javascript 1 07.01.2009 23:57
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00