私はこの関数func
を持っています。これは常にfunc.bind(this)
として呼び出されます。 func
については、関数のコンテキストが常に呼び出し側のthis
コンテキストであると暗黙的に仮定されています。これは少し繰り返されているようで、func
を呼び出すことなく、func
に電話することを忘れる可能性があるため、このような呼び出しは明らかに誤用につながります。this
私は、常にその発信者の文脈を使用する簡潔な方法があるかどうか疑問に思っていました。`func`関数が` func.bind(this) `と呼ばれるJavascriptイディオムがありますか?
私は、ユーザーに呼び出し元のコンテキストを入力させる高次のメソッドを使用することを考えていました。この方法は、次のようになります。
function createFunc(context) {
return function func() {
// rather than call `this`, you use the input parameter, `context`.
}
}
両方とも動作します。関数を定義するためにES6の新しい '()=> {}'構文を使うと、暗黙のうちに 'this'を呼び出し元の' this'にバインドします。 – Shadow
'暗黙のうちにこれを呼び出し元のthisにバインドします - それは正しくないと聞きます –
私はあなたの質問/問題を理解しているとは思わない。あなたは具体的な例を挙げることができますか? * "呼び出し元のこのコンテキストを常に使用する簡潔な方法があるかどうか疑問に思っていました。" *いいえ。呼び出し元は呼び出し時に 'this 'を明示的に設定する必要があります。 –