表达式'this.getURL'[undefined]的结果不是函数

时间:2011-04-23 22:52:02

标签: javascript

当我在没有setInterval的情况下直接调用方法时,该函数正常工作

slider.prototype.onTouchEnd = function(e){
    clearInterval(this.inter);
    this.getURL(this.url + '/' + this.eid.id  + '/' + this.currX);
    e.preventDefault();
}

将相同的函数放入setInterval会给我以下错误: 表达式'this.getURL'[undefined]的结果不是函数

slider.prototype.onTouchStart = function(e){
    e.preventDefault();
    this.inter = setInterval("this.getURL('www.google.com')",100);
}

getURL的代码是:

slider.prototype.getURL = function(url){
    console.log(url);
    verzoek=new XMLHttpRequest();
    verzoek.onreadystatechange=function(){
        if(verzoek.readyState==4) {
            if(verzoek.status==200) {
                var data=verzoek.responseText;
            }
        }
    }
    verzoek.open("GET", url, true);
    verzoek.send(null);
}

this.inter在构造函数

中创建
var slider = function(eid){
    ...
    this.inter = null;  
}

我尝试了很多东西,但它一直在失败。

提前谢谢

1 个答案:

答案 0 :(得分:3)

你需要将一个真实函数传递给setInterval,你当前正在传递一个字符串。

如果您将其更改为:

slider.prototype.onTouchStart = function(e){
    e.preventDefault();
    var that = this;
    this.inter = setInterval(function(){that.getURL('www.google.com');},100);
}

有效吗?