0

我在函数顶部声明了一个变量 as 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 函数中定义,那么我该如何编辑该变量?

4

1 回答 1

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

顺便说一下,为什么你需要'this'以及如果 cuurent_test 是一个全局变量,那么你可以像这样声明

var current_test;

你可以在定时器函数中使用全局变量

于 2012-06-26T03:46:20.560 回答