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

时间:2016-10-27 22:38:26

标签: 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()})());

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

1 个答案:

答案 0 :(得分:1)

这样做:

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

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