Javascript SetInterval() 作用域问题

标签 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);
    }
}

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

最佳答案

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

请注意,您的代码包含在 function 中。

关于Javascript SetInterval() 作用域问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600386/

相关文章:

javascript - 将下拉列表中的值添加到表 javascript

javascript - 在 Javascript 中将持续时间加在一起

c++ - 如何限制对当前文件的某些功能或对象的访问?

javascript - React Native - 应用程序在运行和应用 "setInterval"后崩溃

javascript - D3.js 如何在使用函数时应用多个类

javascript - 如何添加基于 URL 结构的动态主体类?

php - 从嵌套函数内部的函数访问变量

c++ - 如何从C++中的switch语句返回不同类型的变量

javascript - 为数组中的每个间隔 ID 再次运行 set Interval

javascript - 使用 jQuery 对每个数字使用相同的时间使数字增长