Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить имя переменной. 
:(
    Опции темы
Myp3uk
Дата 21.10.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Есть объект, например MyObject().
Объявляю 

myVar = new MyObject();

Ка получить название переменной из MyObject.
Т.е. сделать что типа varName = this.getVarName() и получить в varName == "myVar";

Надеюсь что понятно объяснил ))

Это сообщение отредактировал(а) Myp3uk - 21.10.2007, 17:51
PM MAIL   Вверх
vasac
Дата 21.10.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Подумайте над следующим кодом:
Код

var myVar = new MyObject();
var myVar2 = myVar;
var Arr = [myVar, myVar];
func(myVar);


PM WWW   Вверх
Myp3uk
Дата 21.10.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Подумал, но чет ни чего не придумывается.

Код

MyObject = function(){
    alert(this.getVarName()); 
}

myVar = new MyObject();


При выполнеии должно вывестись окно с надписью "myVar".
Как это сделать?
PM MAIL   Вверх
dsCode
Дата 21.10.2007, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Хех =) Если глобально объявлены переменные, то можно через window выцепить:

Код

<script type="text/javascript">
  function myObj() {
  }
  myObj.prototype.getVarName = function() {
    for (var k in window) {
      if (window[k] == this) {
        return k.toString();
      }
    }
  }
  var myVar = new myObj();
  alert(myVar.getVarName());
  var myVar2 = new myObj();
  alert(myVar2.getVarName());
</script>



--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Myp3uk
Дата 21.10.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Спасибо.
Видимо т этого надо отказаться...

Нужно это было вот для чего:

Каждый новый экземпляр(если я правильно понимаю значение этого слова) объекта MyObject создает некую структуру HTML. Тут встал вопрос как назначить какому-то элементу обработчик из данного объекта.
Код 
Код

document.getElementById('test').setAttribute("onclick",this.click());
 естественно не работате;

Так
Код

function addHandler(object, event, handler){
    if (typeof object.addEventListener != 'undefined')
        object.addEventListener(event, handler, false);
    else if (typeof object.attachEvent != 'undefined')
        object.attachEvent('on' + event, handler);
    else
        throw "Incompatible browser";
}
addHandler(div,"mousemove",this.Move);

тоже не выходит.

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

div.onmousemove = function(event){
        com = this.getAttribute('varname')+'.Move(event)';
        eval(com);
    };

И при создании HTML элемента в его аттрибут записывается имя переменной, которое передается как параметр в констукторе объекта...


PS: замута какая-то... JS для меня совсем новый...


Это сообщение отредактировал(а) Myp3uk - 21.10.2007, 19:22
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0808 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.