Javascript SetInterval()范围问题

Jin*_*iel 3 javascript scope setinterval

我在javascript中编写了一个类似下面的类:

function main()
{
    this.var1 =0;
    this.clock = function()
    {
        var t = this;
        var n =1;
        window.setInterval(document.write(this.n++),1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在调用setInterval()之后'this'指向窗口.所以我无法访问类中的变量.我该如何解决这个范围问题?

Jak*_*cki 5

function main()
{
    this.var1 =0;
    this.clock = function()
    {
        var t = this;
        var n = 1;
        window.setInterval(function(){ document.write(n++); },1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,您的代码已包含在内function.