問題:JavaScriptでコンストラクターを定義しましたが、考えられるほとんどすべてのパターンを試しました/Google。何らかの理由で、そのオブジェクトのメンバー関数を呼び出すときに何をしても、this
キーワードは常ににバインドされwindow
ます。どうしたらいいのかわからない。
JsFiddle: http: //jsfiddle.net/za6SN/2/
問題:JavaScriptでコンストラクターを定義しましたが、考えられるほとんどすべてのパターンを試しました/Google。何らかの理由で、そのオブジェクトのメンバー関数を呼び出すときに何をしても、this
キーワードは常ににバインドされwindow
ます。どうしたらいいのかわからない。
JsFiddle: http: //jsfiddle.net/za6SN/2/
行う
setInterval(function() {ball.draw()}, 50);
なしでは、関数 ball.draw への参照を渡すだけで、これは window を指します
メソッド参照を として渡すと、ball.draw
そのコンテキストが失われたため、 にthis
設定されます。window
最良の方法は、無名関数を使用することです。他の方法はお勧めしません ( を呼び出しますeval()
) ので、ここでは言及しません。