1

问题:我在 JavaScript 中定义了一个构造函数,我尝试了几乎所有我能想到的模式 / Google。出于某种原因,无论我在调用该对象的成员函数时做什么,this关键字总是绑定到window. 我不知道该怎么办。

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

4

2 回答 2

1

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

没有你只会传递对函数 ball.draw 的引用,这将指向窗口

于 2011-05-25T23:38:28.657 回答
0

当您将方法引用传递为ball.draw时,它this被设置为,window因为它已经丢失了它的上下文。

最好的方法是使用匿名函数。不推荐另一种方式(它调用 an eval()),所以我什至不会在这里提及它。

于 2011-05-25T23:42:39.217 回答