我有一些遵循以下结构的代码:
function = roulette(){
_this = this;
this.spin = spin;
this.timeoutFunction = timeoutFunction;
this.object1 = {
x : 0
}
function spin(){
if (typeof this.shuffleTimer !== 'undefined') {
clearTimeout(_this.shuffleStart);
}
this.shuffleStart = setTimeout(_this.timeoutFunction(), _this.object1.x);
}
function timeoutFunction(){
this.object1.x += 5;
//do some DOM manipulation here
console.log(_this.object.x);
if(this.object1.x < 5000){
this.shuffleStart = setTimeout(_this.timeoutFunction(), _this.object1.x);
}
}
}
它绝对没有按预期工作 - 虽然console.log
日志this.object1.x
正在增加,但它的速度太快且速度均匀,如果setTimeout
在timeoutFunction
每个时间增加后触发in ,这不是它的工作方式它被调用的时间。