Как узнать объекты 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
Другие вопросы по тегам