问题:我定义了一个JavaScript构造函数,我尝试了几乎所有我能想到的/ Google模式。由于某种原因,无论我何时调用该对象的成员函数,this
关键字总是绑定到window
。我不知道该怎么办。JavaScript构造函数,这没有正确绑定
的jsfiddle:http://jsfiddle.net/za6SN/2/
问题:我定义了一个JavaScript构造函数,我尝试了几乎所有我能想到的/ Google模式。由于某种原因,无论我何时调用该对象的成员函数,this
关键字总是绑定到window
。我不知道该怎么办。JavaScript构造函数,这没有正确绑定
的jsfiddle:http://jsfiddle.net/za6SN/2/
,其this
设置为window
,因为它已经丢失了它的上下文。
最好的方法是use an anonymous function。另一种方式是不推荐的(它调用eval()
),所以我在这里甚至不会提到它。
做
setInterval(function() {ball.draw()}, 50);
没有你只会通过参考功能ball.draw并在您通过方法引用作为ball.draw
这将指向窗口
JavaScript中'this'关键字的语义相对简单,但不是很明显。这可能有所帮助:[stackoverflow.com/questions/3127429/javascript-this-keyword](http://stackoverflow.com/questions/3127429/javascript-this-keyword) – digitalbath 2011-05-25 23:42:01