我有一個簡單的JavaScript類。通過setInterval事件調用類原型方法
該類的一個方法使用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);
}
後一種方法更普遍適用。 +1 – xtofl 2010-01-04 20:25:16
是的,取決於...我認爲前者在AS3中工作,但我不記得它是否在JS中跨瀏覽器。後者通常是最安全的。 – 2010-01-04 20:27:08
像魅力一樣工作 – Andres 2010-01-04 20:31:00