javascript - 如何在 JavaScript 中将自调用函数作为函数参数传递?

标签 javascript

我有以下代码,我使用箭头函数来完成我的工作。这在 Chrome 和 Firefox 中完美运行,因为它们支持箭头函数。

this._subscription = this._modal.shown.subscribe(() => this._el.nativeElement.focus());

但是,这在 IE 11 中无法正常工作。因此,我尝试将此箭头函数转换为匿名自调用函数。我做了以下事情:

this._subscription = this._modal.shown.subscribe((function(){ this._el.nativeElement.focus()})());

但是上面的代码不起作用。难道我做错了什么?我怎样才能做到这一点。任何建议和帮助将不胜感激。

最佳答案

这样做:

this._subscription = this._modal.shown.subscribe((function(){ this._el.nativeElement.focus();}).bind(this));

在这里,正如 @harmic 在上面答案的评论中提到的那样,这将不再引用以前的值,因为在这种情况下范围会发生变化。因此,您必须绑定(bind)它才能使其工作。

关于javascript - 如何在 JavaScript 中将自调用函数作为函数参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40295294/

相关文章:

javascript - POST 请求时 Mongoose 验证错误

javascript - 大量 JS dom 注入(inject)/操作后的 DOM 验证

javascript - Angularjs promise 这个引用窗口

javascript - NodeJS && 浏览器跨兼容 websocket 客户端

javascript - 如何在dojo中模拟无模式窗口对话框,以便我们可以打开多个窗口 Pane

javascript - 如何使用 setTimeout 防止 429(请求过多)错误

javascript - 使用输入在 JavaScript 中分类

php - 来自 mysql/php Json 编码数据和 Jquery 的 LazyLoad 内容

javascript - 加快图像下载时间

javascript - 描述正则表达式模式的正则表达式?