Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在javascript的定义中使用setInterval吗;“类”;?_Javascript - Fatal编程技术网

我可以在javascript的定义中使用setInterval吗;“类”;?

我可以在javascript的定义中使用setInterval吗;“类”;?,javascript,Javascript,每次实例化一个类时,我都想在javascript中启动一个setInterval方法(我知道,我不应该在javascript中调用它class…)。setInterval每500毫秒调用一次类方法update。这是我的密码: function Test(a) { this.a = a; this.b = 0; this.interval = setInterval(this.update, 500); }; Test.prototype.update = function() {

每次实例化一个类时,我都想在javascript中启动一个
setInterval
方法(我知道,我不应该在javascript中调用它class…)。
setInterval
每500毫秒调用一次类方法
update
。这是我的密码:

function Test(a) {
  this.a = a;
  this.b = 0;
  this.interval = setInterval(this.update, 500);
};

Test.prototype.update = function() {
    console.log(this.b);
    this.b += 1;
    if (this.b > 10) clearInterval(this.interval);
};

但是当我用
var mytest=new Test(1)
实例化这个类时,类属性
b
在第一次调用中似乎是未定义的,随后是NaN(因为将1添加到未定义中会产生NaN)。为什么
b
在第一次调用中不是
0

当触发setInterval时,此
的范围会改变<代码>此
将显示在
窗口中
。要维护范围,可以使用


谢谢。这很有效。
setInterval(this.update.bind(this), 500);