意外的Transpile ES6> ES5

时间:2016-05-14 06:37:11

标签: javascript ecmascript-6 babeljs ecmascript-5 transpiler

当从ES6(使用Babel)将此功能转换为ES5时,我没有预料到它会改变

var func = function(msg){
  alert(msg);
}

但它变成了

var func = function func(msg) {
        alert(msg);
};

为什么会这样,如果有的话,它会如何影响功能的使用? 即使它不影响使用,我还应该知道什么吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

它也不会影响函数的使用,但它确实为函数提供了引用自身的方法。

在下面的代码片段中,请注意我递归调用ff - 这只是该函数的本地函数,而我使用func调用它。

结果是:它是无害的,你可以忽略它。



var func = function ff(t) {
  if (t === 0) {
    console.log("Countdown down");
  } else {
    console.log("Counting down", t);
    ff(t - 1);
  }

};

func(10);