当前位置:  开发笔记 > 编程语言 > 正文

如何使用window.setTimeout()在JavaScript中编写递归方法?

如何解决《如何使用window.setTimeout()在JavaScript中编写递归方法?》经验,为你挑选了1个好方法。

我正在编写一个JavaSCript类,它有一个递归调用自身的方法.

Scheduler.prototype.updateTimer = function () {
    document.write( this._currentTime );
    this._currentTime -= 1000;
    // recursively calls itself
    this._updateUITimerHandler = window.setTimeout( arguments.callee , 1000 );
}

楼盘简介:

_currentTime: the currentTime of the timer in miliseconds.
_updateUITimerHandler: stores the reference so can be used later with clearTimeout().

我的问题是我在使用setTimeout()的递归.我知道setTimeout()将接受一些要执行的字符串,或者对函数的引用.因为这个函数是一个对象的方法,所以我不知道如何从外面调用它.所以我使用了setTimeout()的第二种格式,并传入了对方法本身的引用.但它不起作用.



1> AnthonyWJone..:

试试这个:-

Scheduler.prototype.startTimer = function() {
  var self = this;
  function updateTimer() {
    this._currentTime -= 1000;
    self.hTimer = window.setTimeout(updateTimer, 1000)
    self.tick()
  }
  this.hTimer = window.setTimeout(updateTimer, 1000)
}
Scheduler.prototype.stopTimer = function() {
    if (this.hTimer != null) window.clearTimeout(this.hTimer)
  this.hTimer = null;
}
Scheduler.prototype.tick = function() {
  //Do stuff on timer update
}

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有