这个自调用匿名函数变体背后的原因 [英] Reason behind this self invoking anonymous function variant

查看:21
本文介绍了这个自调用匿名函数变体背后的原因的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 github 上查看 代码 时,我发现以下内容:

While looking at code on github, I found the following:

(function() {

}).call(this);

这显然是一个自调用匿名函数.但是为什么要这样写呢?我已经习惯看到规范变体 (function() {})().

This is clearly a self invoking anonymous function. But why is it written this way? I'm used to seeing the canonical variant (function() {})().

.call(this) 用于自调用匿名函数有什么特别的好处吗?

Is there any particular advantage to using .call(this) for a self invoking anonymous function?

看起来一些 commonjs 环境将 this 设置为模块顶层的非全局值.哪些,他们将 this 设置为您可能想要保留的内容?

It looks like some commonjs environments set this to a non-global value at the top level of a module. Which ones, and what do they set this to that you might want to preserve?

推荐答案

.call(this)(实际上只是 () 直到我更改它)确保您的顶部this 通过严格模式保持一致,--bare 选项和/或运行环境(其中顶级 this 不指向全局对象).

.call(this) (was actually just () until I changed it) ensures your top level this to be consistent through strict mode, --bare option and/or the running environment (where top level this doesn't point to global object).

这篇关于这个自调用匿名函数变体背后的原因的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆