Показать сообщение отдельно
  #1 (permalink)  
Старый 14.11.2008, 00:26
Аспирант
Отправить личное сообщение для Ichigeki Посмотреть профиль Найти все сообщения от Ichigeki
 
Регистрация: 24.10.2008
Сообщений: 48

Можно ли получить имя экземпляра объекта внутри самого объекта?
Я создал свой класс, который создает DIV и IFRAME, в общем имитация всплывающего окна. Хотелось бы сделать так, чтобы на этом всплывающем окне при создании его, добавлялась кнопка(ну или сссылка) для закрытия этого окна.
Тоесть у объекта есть метод close(), который его закрывает. Все методы у меня работают, окно создается и сама функция close() тоже работает верно, вопрос не как их реализовать, а как сделать так, чтобы кнопка или ссылка, по клику на которой добавлялась именно в функции создания "окна", т.к this.close() тут не прокатит, а надо вызывать метод из конкретного экземпляра объекта. МОжно ли как либо внутри класса получить имя экземпляра объекта?

create()
{
//......
//создается DIV и IFRAME
//.......

//а здесь добавим ссылку, по которой окно должно закрыться
var tmp = this.div.innerHTML;
this.div.innerHTML = "<a onclick=close()>Закрыть[X]</a>" + tmp;
}


в приведенном мною псевдокоде видим onclick=close(). Но тут будет ошибка, т.к close() - это метод объекта. this.close() тут тоже не сделаешь. Пока что мне приходит в голову только после создания экземпляра объекта передавать этому экземпляру его имя как строку както так:

create(instName)
{
......

var tmp = this.div.innerHTML;
this.div.innerHTML = "<a onclick=" + instName + ".close()>Закрыть[X]</a>" + tmp;
}

но хотелось бы чтобы при использовании класса не надо было заботиться о том чтобы передавать имя объекта, а как то получить его внутри метода create().

Или, возможно есть какое то другое решение данной проблемы? Буду признателен за любую помощь
Ответить с цитированием