对带有JavaScript参数的函数使用setInterval()

时间:2015-10-06 18:16:02

标签: javascript javascript-objects

我需要每隔100ms调用一次函数,这很容易,但是如果我需要该函数来接受参数呢?

问题是我创建了一个对象,并且需要定期更新它。我已经尝试将对象引用设置为全局,但没有用。我尝试将其设置为函数变量,仍然没有运气。显然我需要传入对象,我无法弄清楚如何使用setInterval。这有必要诀窍吗?

下面的代码适用于forst调用,但之后它失败了:

    setCounterText.segment.DisplayText("AAABBB");

抱怨setCounterText.segment.DisplayText()不是函数...

...谢谢

window.onload = function ()
{

        setInterval(setCounterText, 1000);
}




function setCounterText()
{

  //"use strict";

  var num;

  if(!setCounterText.isInit)
  {
     num = 0;
     setCounterText.isInit=true;

     var canvas = document.getElementById('c');
     var container = document.getElementById('container');
     canvas.width = container.clientWidth;
     canvas.height = container.clientHeight;

     // Create a new sixteen segment display
     setCounterText.segment = new SixteenSegment(1, canvas);

     update(setCounterText.segment);

     setCounterText.segment.DispayText("T-000:00:00.0");
   }

   num++;

   setCounterText.segment.DisplayText("AAABBB");

}

1 个答案:

答案 0 :(得分:2)

您可以创建另一个函数作为 setCounterText 函数的clojure,并将其作为参数传递给setInterval。

 setInterval(function() {
   setCounterText(anotherParameter);
 }, 1000);

这将捕获您的参数,并在间隔触发时调用setCounterText函数。

关于你得到的错误,如果不知道 SixteenSegment 函数中的代码,就不可能说,但它应该在其上设置一个名为 DisplayText 的属性。