0

メソッドの最初のパラメーターbindは新しいthis値です。this問題は、これが自然値を置き換えているように見えることです。特に、イベント リスナーに使用する場合は、トリガー要素ではなくなります。

例えば:

var h1=document.querySelector('h1')
h1.onclick=doit.bind(this,42);  //  or null, or h1
function doit(a) {
    alert(this);                //  Not automatically the calling element
    alert(a);
}

この場合、最初のパラメーターを要素に設定できることがわかりましたh1event.target実際のターゲットを取得するために使用することもできます。ただし、イベント リスナーを複数の要素または匿名要素に割り当てる場合など、必ずしも便利とは限りません。

問題は、bindのデフォルト値を使用するように指示する簡単な方法はありますthisか?

ありがとう

注: これは厳密にはUse bound this and this of function scope in a function bound with bind() as (a) の複製ではありませthisん。私が自分自身について言及したものを使用event.currentTargetするか、新しい方法を作成する必要がありますが、これは私が求めていたものではありません。

ただし、答えが「いいえ」である可能性はありますが、それはできません。そのため、質問を再開するつもりはありません。

4

0 に答える 0