我需要每隔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");
}
答案 0 :(得分:2)
您可以创建另一个函数作为 setCounterText 函数的clojure,并将其作为参数传递给setInterval。
setInterval(function() {
setCounterText(anotherParameter);
}, 1000);
这将捕获您的参数,并在间隔触发时调用setCounterText函数。
关于你得到的错误,如果不知道 SixteenSegment 函数中的代码,就不可能说,但它应该在其上设置一个名为 DisplayText 的属性。