Как узнать объекты JavaScript, связанные имя переменной
Я хочу узнать, как получить имя переменной, связанной с объявлением объекта. Проще описать эту проблему на примере, поэтому:
function MyObject (){
this.NeedToKnow = "";
this.getLink = function() {
html = '<a href="javascipt:' +this.NeedToKnow+'.doIt(passVal) ">M</a>';
return html;
}
this.doIt = function(passVal) {
//do stuff
}
}
varNeedToKnow = new MyObject ();
var html = varNeedToKnow .getLink();
Итак, мой вопрос, как узнать "varNeedToKnow", чтобы заполнить this.NeedToKnow внутри объекта?
Это вообще возможно?
1 ответ
Решение
Я бы подошел к этому немного по-другому, в результате чего вы будете более напрямую взаимодействовать с обработчиками DOM/ событий. Делая это таким способом, вы избавляетесь от необходимости выставлять имена функций вне области вашего объекта, так как событие click теперь напрямую связано с самой функцией.
function MyObject (){
this.getLink = function() {
var a = document.createElement('a');
a.innerHTML = 'MyLink';
if(a.addEventListener) {
a.addEventListener('click', this.doStuff, false);
} else {
a.attachEvent('onclick', this.doStuff);
}
return a;
};
this.doStuff = function(passVal) {
//do stuff
};
}
var varNeedToKnow = new MyObject ();
var element = varNeedToKnow.getLink();
//element now contains an actual DOM element with a click event bound to your doStuff function