JavaScript setInterval回调函数意外调用

时间:2016-07-28 02:50:53

标签: javascript setinterval

我正在尝试使用原型扩展函数,我想使用setInterval函数调用扩展函数。

var test = function(){};
testProto = test.prototype;

testProto.a = function(){
    return this;
}

testProto.b = function(){
    return this;
}
var idx = 0;
testProto.c = function(){
    console.log('call -> ' + (idx++))
    var self = this;
    setInterval(self.c.bind(self) , 1000)
}


var test = new test();
test.a().b().c();

我的期望:

  

首次通话:通话 - > 1

     

第二个电话:通话 - > 2

     

第三次通话:通话 - > 3

结果:

  

首次通话:通话 - > 1

     

第二个电话:通话 - > 2,通话 - > 3

     

第二个电话:通话 - > 4,通话 - > 5,通话 - > 6,通话 - > 7

我错了什么?如何修复它以及如何制作我期望的结果。

0 个答案:

没有答案