我可以'我没有针对我的闭包中的正确范围
I can't target the correct scope inside my closure
我的闭包中有一个setInterval,但我无法正确地针对闭包中的变量。如何正确定位变量并在计数器达到finishTime时停止间隔?
var counter = function() {
return {
myInterval: null,
counter: 0,
finishTime: 1000,
startTimer: function() {
this.myInterval = setInterval(this.repeat,10);
},
repeat: function() {
if(this.counter==this.finishTime) clearInterval(this.myInterval);
this.counter++;
}
}
};
counter().startTimer();
var counter = function() {
return {
myInterval: null,
counter: 0,
finishTime: 1000,
startTimer: function() {
this.myInterval = setInterval(this.repeat.bind(this), 10);//need to bind the context here
},
repeat: function() {
if(this.counter==this.finishTime)
{
clearInterval(this.myInterval);
console.log("finished")
}
this.counter++;
}
}
};
counter().startTimer();
定义本地范围内的所有内容(如果您想从外部访问返回的对象,您可以选择将repeat分配给它):
var Counter = function(finish)
{
var count = 0;
var myInterval = null;
function repeat() {
if(++count == finish)
clearInterval(myInterval);
}
return {
getCount: function() { return count; },
startTimer: function() { myInterval = setInterval(repeat,10); return this; },
repeat: repeat
};
};
var counter = new Counter(1000).startTimer();
相关文章:
- setTimeout可以与闭包内的函数一起使用吗
- 如何在Angularjs中重构闭包中的重复代码
- 如何冻结函数's在闭包中的变量
- 闭包中的Javascript值
- javascript,将参数传递给函数内部的闭包中的回调
- 如何将闭包内的值返回到外部范围
- Node.js设计:多个异步函数使用作为闭包传递的函数写入数据库
- var 函数名称与函数闭包中的名称分配
- Javascript,闭包中的返回函数如何与外部函数连接
- Javascript-匿名函数中使用参数引用全局函数的闭包-我如何使用preventDefault
- Javascript:附加字符串中的事件,闭包中的变量求值
- 闭包中的本地变量从外部更改.这是一个javascript错误,或者我做错了什么
- 我从闭包返回的函数在外部范围内是否可用
- python中的闭包.我可以在函数的本地上下文上关闭吗?
- 为什么我只能在嵌套闭包链的第一个实例中声明变量
- 我在哪里可以找到闭包编译器的jQuery Mobile extern文件
- 我可以'我没有针对我的闭包中的正确范围
- 我以为我有一个this引用传递到Javascript闭包中的私有函数,我想错了
- 我可以使用暴露模块模式对闭包中的变量使用getter/setter吗
- 为什么我不能访问闭包中的局部变量?