2016-05-14 48 views
1

當transpiling此功能爲ES5從ES6(使用巴貝爾)我沒想到它改變意外Transpile ES6> ES5

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

卻成了

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

這是爲什麼,以及如何它是否會影響功能的使用,如果有的話? 即使它不影響使用,有什麼我應該知道的嗎? 謝謝。

+0

這是巴貝爾一個問題嗎? – YOU

+2

Babel只是做了ES6指定的內容:分配給某事的所有匿名函數表達式都被命名。 – Bergi

+0

如果它會影響使用,Babel不會這樣做。 – Bergi

回答

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);