1

問題:JavaScriptでコンストラクターを定義しましたが、考えられるほとんどすべてのパターンを試しました/Google。何らかの理由で、そのオブジェクトのメンバー関数を呼び出すときに何をしても、thisキーワードは常ににバインドされwindowます。どうしたらいいのかわからない。

JsFiddle: http: //jsfiddle.net/za6SN/2/

4

2 に答える 2

1

行う

setInterval(function() {ball.draw()}, 50);

なしでは、関数 ball.draw への参照を渡すだけで、これは window を指します

于 2011-05-25T23:38:28.657 に答える
0

メソッド参照を として渡すと、ball.drawそのコンテキストが失われたため、 にthis設定されます。window

最良の方法は、無名関数を使用することです。他の方法はお勧めしません ( を呼び出しますeval()) ので、ここでは言及しません。

于 2011-05-25T23:42:39.217 に答える