通过 setInterval 事件调用类原型方法

12 浏览
0 Comments

通过 setInterval 事件调用类原型方法

我有一个简单的JavaScript类。这个类的一个方法使用setInterval函数设置了一个定时器。我想要每次事件触发时调用的方法是在同一个类中定义的。问题是,我如何将这个方法作为参数传递给setInterval函数呢?一种尝试是setInterval('this.showLoading(), 100'),但是不起作用。这个方法访问类的属性,所以我需要使用'this'引用。以下是示例代码:

function LoadingPicture(Id)
{
    this.imgArray = null;
    this.currentImg = 0;
    this.elementId = Id;
    this.loadingTimer = null;
}
LoadingPicture.prototype.showLoading = function()
{
    if(this.currentImg == imgArray.length)
        currentImg = 0;
    document.getElementById(this.elementId).src = imgArray[this.currentImg++].src;
}
LoadingPicture.prototype.StartLoading = function()
{
    document.getElementById(this.elementId).style.visibility = "visible";
    loadingTimer = setInterval(this.showLoading.bind(this), 100);
}

0