gpt4 book ai didi

javascript - 通过 setInterval 事件调用类原型(prototype)方法

转载 作者:行者123 更新时间:2023-12-03 00:15:38 27 4
gpt4 key购买 nike

我有一个简单的 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("showLoading()", 100);
}

最佳答案

setInterval 可以直接接受一个函数,而不仅仅是一个字符串。 https://developer.mozilla.org/en/DOM/window.setInterval

loadingTimer = setInterval(showLoading, 100);

但是,为了获得最佳的浏览器兼容性,您应该使用带有显式引用的闭包:

 var t = this;
loadingTimer = setInterval(function(){t.showLoading();}, 100);

关于javascript - 通过 setInterval 事件调用类原型(prototype)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2001920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com