请有人能解释一下setInterval函数末尾(this)的含义是什么:
function Klass(name) {
this.name = name;
this.handle = null;
this.startTimer = function() {
this.handle = setInterval(function(obj) {
return(function() {
alert(obj.name);
});
}(this), 5000); // <-------------------- (this)
}
答案 0 :(得分:9)
在构造中使用this
旨在保留this
在setInterval
处的含义,为在给定间隔执行的实际回调调用this
。如果没有手动保存,setInterval
将成为调用点var self = this
this.handle = setInterval(function() { alert(self.Name); }, 5000);
时函数的所有者。
这是关于这个主题的非常好的文章
另一种可以做得更好的方法是以下
{{1}}