私はので、私は例を提示してみましょう、正確にどのようにフレーズ私の質問をするかわからない:初期化関数のイベントリスナーにプロトタイプ関数を追加するにはどうすればよいですか?
function foo() {
window.addEventListener("keydown", function(event) {
bar(event.keycode);
}
foo.prototype.bar = function (keycode) {
//code
}
私はを使用して試してみたが、それはthis
としてwindow
を使用してになります。これを行う方法はありますか、手動で別のメソッドを初期化する必要がありますか?
なぜバインド? 'window.addEventListener(" keydown "、this.bar、false);'? –
@SheikhHeeraので、 'bar'は' this'の文脈で呼び出されます。さもなければ、グローバルスコープで実行され、プロトタイプ関数をバインドする利点がありません。 – zzzzBov
@SheikhHeera '.bind'は、バインドされた関数がどのように呼び出されても、常に同じ値になるようにこの値を修正します。この場合、常に 'foo'オブジェクトになります。 – Esailija