Javascript 绑定使用调用和 setInterval
Javascript binding using call with setInterval
如何使用"call"和"setInterval"来获取对象文字来调用它自己的方法之一?
下面是一个示例。这有效,我理解它为什么有效。计时器对象每秒调用自己的tick方法一次
var timer =
{
start: function()
{
var self = this;
setInterval(function(){self.tick();}, 1000);
},
tick: function()
{
console.log("tick!");
}
};
timer.start();
我试图通过使用"call"来简化这段代码。下一个例子是我想出的最好的例子。但它不起作用:tick 方法只调用一次,然后我得到一个类型错误。
var timer =
{
start: function()
{
setTimeout.call(this, this.tick(), 1000);
},
tick: function()
{
console.log("tick!");
}
};
timer.start();
我想我真的不明白呼叫是如何工作的。谁能解释我做错了什么?
你.calling
.setInterval
不是浏览器调用的回调函数:
setInterval( this.tick.bind(this), 1000 );
应该工作。见.bind
这就是我最终得到的:
var timer = {
time: 0,
start: function() {
var timerTick = this.tick.bind(this);
window.setInterval(function() {
timerTick();
}, 1000);
},
tick: function() {
this.time += 1;
console.log(this.time);
}
};
timer.start();
相关文章:
- node.js:setInterval()正在跳过调用
- 可以't获取setInterval函数以使用javascript中的this.function_name调用另一
- 使用setInterval调用原型函数时出现问题
- setInterval调用具有未定义参数的函数
- 是否可以对超出范围的 setInterval 变量调用 clearInterval 方法
- SetInterval一直在调用相同的函数
- 从对象命名空间环境中的嵌套setInterval调用嵌套函数
- 如何停止 setInterval 调用
- 其他方法使用 setInterval 调用的方法无法访问 js 中的对象属性
- 从jQuery发送一些数据,通过setInterval调用PHP中的函数
- 为什么我的代码在第一次 setInterval 调用时删除复选框控件
- 如何修改/覆盖由无限 setInterval 调用的 javascript 函数
- javascript 类 - this.method 使用 setInterval 调用
- 使用setInterval调用的jQuery不是't在第一个间隔上设置动画
- 给setInterval调用的函数提供参数
- 将setInterval调用替换为放置在被调用函数内部的其他算法
- 处理多个setInterval调用
- SetInterval调用时严格模式作用域错误
- 函数阻止setInterval调用使width样式保持静态
- 为什么这个setInterval调用不起作用