Как получить имя переменной.

 
0
 
JavaScript
ava
Myp3uk | 21.10.2007, 18:51
Есть объект, например MyObject().
Объявляю

myVar = new MyObject();

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

Надеюсь что понятно объяснил ))
Ответы (4)
ava
vasac | 21.10.2007, 17:54 #
Подумайте над следующим кодом:

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

ava
Myp3uk | 21.10.2007, 18:01 #
Подумал, но чет ни чего не придумывается.


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

myVar = new MyObject();


При выполнеии должно вывестись окно с надписью "myVar".
Как это сделать?
ava
dsCode | 21.10.2007, 18:42 #
Хех =) Если глобально объявлены переменные, то можно через 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>
ava
Myp3uk | 21.10.2007, 19:20 #
Спасибо.
Видимо т этого надо отказаться...

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

Каждый новый экземпляр(если я правильно понимаю значение этого слова) объекта 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 для меня совсем новый...
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  vasac   Myp3uk   dsCode
advanced
Отправить