请有人在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)
}
解决方法:
在构造中使用this旨在保留this的含义.在给定间隔执行的实际回调中调用setInterval.如果没有手动保存,这将成为调用setInterval时函数的所有者.
这是一篇关于这个主题的非常好的文章
> http://www.quirksmode.org/js/this.html
另一种可以做得更清楚的方法如下
var self = this
this.handle = setInterval(function() { alert(self.Name); }, 5000);