【发布时间】:2013-03-08 01:39:59
【问题描述】:
我有这个 Javascript 构造函数-
function TestEngine() {
this.id='Foo';
}
TestEngine.prototype.fooBar = function() {
this.id='bar';
return true;
}
TestEngine.prototype.start = function() {
this.fooBar();
}
TestEngine.prototype.startMethod = function() {
inter = setInterval(this.start, 200);
}
var test = new TestEngine();
test.startMethod();
给我这个错误 -
Uncaught TypeError: Object [object global] has no method 'fooBar'
我尝试了console.log,发现当我从setInterval 中调用this.start 时,this 指向window 对象。为什么会这样?
【问题讨论】:
-
setInterval是window.setInterval所以this指的是window -
@kidwon - 这不是原因。正确原因请参见下面的答案:stackoverflow.com/a/15587589/783743
标签: javascript jquery oop object