我有一些 JavaScript 代码(在一个对象中):
toggle: function() {
var me = this;
var handler = function() { me.progress() };
me.intervalId = setInterval(handler, me.intervalTime);
//...More code
}
我对JavaScript还比较新,据我所知,上面的代码将me
变量传递给了匿名函数。我想知道是否有更加声明式的方法来实现这个功能?我希望得到类似于以下代码的东西:
var handler = (function(o) { o.progress();})(this));
但是似乎这并没有起作用... 我有什么遗漏吗?这是一个“语言本身的工作方式,因此只需声明一个局部变量并处理它”的情况吗?
更新:
导致问题的源头是我对JavaScript中作用域和闭包的理解不清楚。我发现这篇文章帮助我更好地理解了一些。
)
。也许var handler = (function(o) { o.progress();})(this);
可以工作? - pimvdb