Javascript 在babel loader中将其更改为未定义的自调用参数
我正在使用带有babel loader的Webpack,我看到了这个问题: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将每个
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等插件公开,并且您正在将此作为全局环境的参考传递给自调用函数,则这尤其是一个问题。