我在我的函数顶部声明了一个变量this.current_test = null;
,然后在我的行中有一个setInterval函数,我需要将变量设置为一个新的参数......
this.current_test.failed = true;
代码:
timer = this.window.setInterval(function()
{
this.window.clearInterval(timer);
this.current_test.failed = true;
},1000);
}
但是我收到TypeError: 'undefined' is not an object (evaluating 'this.current_test.failed = true'
错误
我认为这是因为this.current_test没有在setInterval函数中定义,所以如何编辑该变量呢?
答案 0 :(得分:0)
计时器功能中'this'的范围不会引用this.window。这个范围只适用于你可以做的功能
var wnd=this.window; // take your widow to local variable
timer = this.window.setInterval(function()
{
this.window.clearInterval(timer);
wnd.current_test.failed = true; // use your local variabe in the function
},1000);
}
顺便说一下,为什么你需要'这个'以及if cuurent_test是一个全局变量然后你可以声明像
var current_test;
您可以在计时器功能
中使用全局变量