javascript匿名函数参数传递

标签 javascript

我有一些 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中的范围和闭包的不清楚的理解。我找到了this article帮助我了解更多。

最佳答案

您可以使用“.bind()”:

var handler = function() { this.progress(); }.bind(this);

新浏览器有“bind()”和Mozilla docs有一个可靠的实现,你可以用它来修补旧的浏览器。

关于javascript匿名函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188861/

相关文章:

javascript - 在 Internet Explorer 中避免此错误(和 document.write)的选项有哪些?

javascript - 为什么每次运行函数时我提供的参数值都会被替换?

javascript - 如何在javascript中显示关闭子窗口时的确认消息?

javascript - 确定 Chrome 中当前 DOM 元素状态

javascript - JQuery:用于移动使用的精简版 Slider 控件?

javascript - 在 android WebView 中的 java 和 javascript 之间共享一个对象(数据)

javascript - 清除间隔以停止效果

javascript - ajax.actionlink(){} 正在重新加载页面而不是调用 ajax

javascript - 在 Android 中使用谷歌地图调用路线

javascript - Angular : Render externalized strings containing scope variables in the controller