0

オブジェクト宣言に関連付けられた変数名を取得する方法を知りたいです。この問題を説明するのは簡単です。例を使用すると、次のようになります。

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();

だから私の質問は、オブジェクト内の this.NeedToKnow を埋めるために "varNeedToKnow" を見つける方法ですか?

それは可能ですか?

4

1 に答える 1

1

DOM/イベント ハンドラーとより直接的にやり取りするという、少し異なる方法でアプローチします。このようにすると、クリック イベントが関数自体に直接バインドされるため、オブジェクトのスコープ外に関数の名前を公開する必要がなくなります。

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
于 2014-09-16T08:44:50.543 に答える