Javascript 在babel loader中将其更改为未定义的自调用参数

Javascript 在babel loader中将其更改为未定义的自调用参数,javascript,ecmascript-6,webpack,babeljs,Javascript,Ecmascript 6,Webpack,Babeljs,我正在使用带有babel loader的Webpack,我看到了这个问题:babel loader将匿名自调用函数中的this更改为未定义的,而不是this 例如: (function (t1, t2) { })(this, 'test') 转换为: (function (t1, t2) { })(undefined, 'test'); Babel假设每个文件都是一个(ES2015)模块。模块的此在运行时具有值未定义。为了在不支持模块的环境中(此时的每个环境)模拟正确的行为,Babel将每个

我正在使用带有babel loader的Webpack,我看到了这个问题:babel loader将匿名自调用函数中的
this
更改为
未定义的
,而不是
this

例如:

(function (t1, t2) {
})(this, 'test')
转换为:

(function (t1, t2) {
})(undefined, 'test');

Babel假设每个文件都是一个(ES2015)模块。模块的
在运行时具有值
未定义
。为了在不支持模块的环境中(此时的每个环境)模拟正确的行为,Babel将每个顶级
this
替换为
未定义的

Babel假设每个文件都是(ES2015)模块。模块的
在运行时具有值
未定义
。为了在不支持模块的环境中(此时的每个环境)模拟正确的行为,Babel将每个顶级
this
替换为
undefined

,进一步阅读后,这是正确的答案。作为参考,.@MikeC:啊,你找到了常见问题,谢谢。看起来它在实际页面上不再链接了。它没有链接是因为应该使用“插件”。然而,如何解决这个问题,例如自调用函数?@julmot:我不明白你的意思。你想解决什么问题?我想知道这个问题的解决方案,而不仅仅是背景信息。假设您使用的是es2015预设,则会出现此问题。如何防止babel将
替换为
未定义
?如果您正在使用AMD或CommonJS等插件,并且您正在将
作为全局环境的参考传递给自调用函数,则这尤其是一个问题。进一步阅读后,这是正确的答案。作为参考,.@MikeC:啊,你找到了常见问题,谢谢。看起来它在实际页面上不再链接了。它没有链接是因为应该使用“插件”。然而,如何解决这个问题,例如自调用函数?@julmot:我不明白你的意思。你想解决什么问题?我想知道这个问题的解决方案,而不仅仅是背景信息。假设您使用的是es2015预设,则会出现此问题。如何防止babel将
替换为
未定义
?如果您正在为AMD或CommonJS等插件公开,并且您正在将
作为全局环境的参考传递给自调用函数,则这尤其是一个问题。