现在它可以翻译 class X { ... } 到 var X = function X(...) { ... } ,如何将其输出为 function X (...) { ... } ?
class X { ... }
var X = function X(...) { ... }
function X (...) { ... }
函数声明和ES6类之间的区别在于,函数声明是挂起的:
console.log(Foo); // Foo function Foo() {}
类处于暂时死区:
console.log(Foo); // ReferenceError class Foo {}
将类转换为函数声明是不正确的,ES6类的正确函数表示形式是:
const Foo = function Foo() {};
因为没有 const 在ES5中,Babel将其传输到 var ,还尝试在可能的情况下模拟时间死区 respective transform 已启用。
const
var