Javascript window.setInterval不工作

Javascript window.setInterval不工作,javascript,Javascript,可能重复: 我使用下面的脚本来理解函数上下文的概念。我不希望警报从20开始重复。但在展示了20个之后,情况就变得相当糟糕了。 当使用call方法并提供o2时,它应该得到值20并从那里重复 <script type="text/javascript"> var o2 = { local: 20 } var local=0; function someFuncObject(){ alert('Thats method o

可能重复:

我使用下面的脚本来理解函数上下文的概念。我不希望警报从20开始重复。但在展示了20个之后,情况就变得相当糟糕了。 当使用call方法并提供o2时,它应该得到值20并从那里重复

<script type="text/javascript">

    var o2 = {
        local: 20
    }
    var local=0;
    function someFuncObject(){
        alert('Thats method object again ' + this.local++);
    }
 // window.setInterval(someFuncObject, 2000); //This works perfect!!!
    window.setInterval(someFuncObject.call(o2), 2000); // This does not, why?
</script>
另一方面,如果我使用window.setIntervalsomeFuncObject,2000;它很好地工作,并且一次又一次地重复。有什么问题吗?

someFuncObject.callo2实际上调用了该函数。这意味着,传递到setInterval的是从someFuncObject返回的内容。setInterval期望作为参数的是函数本身,而不是函数返回的内容

如果要在someFuncObject内控制此值,可以使用匿名函数,如:

window.setInterval(function() {
    someFuncObject.call(o2);
}, 2000);

在较新版本的ECMAScript中,您还可以使用someFuncObject.bindo2。感谢您对此的解释:-