问题:我在 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 的引用,这将指向窗口
当您将方法引用传递为ball.draw
时,它this
被设置为,window
因为它已经丢失了它的上下文。
最好的方法是使用匿名函数。不推荐另一种方式(它调用 an eval()
),所以我什至不会在这里提及它。