メソッドの最初のパラメーター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);
}
この場合、最初のパラメーターを要素に設定できることがわかりましたh1
。event.target
実際のターゲットを取得するために使用することもできます。ただし、イベント リスナーを複数の要素または匿名要素に割り当てる場合など、必ずしも便利とは限りません。
問題は、bind
のデフォルト値を使用するように指示する簡単な方法はありますthis
か?
ありがとう
注: これは、厳密にはUse bound this and this of function scope in a function bound with bind() as (a) の複製ではありませthis
ん。私が自分自身について言及したものを使用event.currentTarget
するか、新しい方法を作成する必要がありますが、これは私が求めていたものではありません。
ただし、答えが「いいえ」である可能性はありますが、それはできません。そのため、質問を再開するつもりはありません。