给定一个输入文件,例如
import { a } from 'b';
function x () {
a()
}
babel 会将其编译为
'use strict';
var _b = require('b');
function x() {
(0, _b.a)();
}
但是当以松散模式编译时,函数调用输出为_b.a();
我对逗号运算符的添加位置进行了一些研究,希望有评论对其进行解释。
负责添加它的代码是here.
(0, _b.a)()
确保功能_b.a
被称为this
设置为全局对象(或者如果启用了严格模式,则undefined
)。如果你打电话_b.a()
直接,然后_b.a
被称为this
set to _b
.
(0, _b.a)();
相当于
0; // Ignore result
var tmp = _b.a;
tmp();
(the ,
是逗号运算符,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)