簡體   English   中英

Babel箭頭功能編譯成ES5

[英]Babel arrow function compilation into ES5

使用巴別塔我注意到一些有點奇怪的東西。

const app = () => {}應該等於var app = function() {}

Babel返回var app = function app() {}

不,babel是正確的,因為分配給var的箭頭函數理論上應該具有與該var的名稱相當的name屬性,以幫助堆棧跟蹤和反射。 查看鏈接以獲取更多信息。 如果它變得陳舊,請快速摘要:

函數的name屬性在聲明時創建。 函數表達式的name屬性是從名稱綁定推斷出來的:

var foo = function() {};
console.log(foo.name); // foo

箭頭函數具有相同的行為:

var foo = () => {};
console.log(foo.name); // foo

因為在ES 2015 / ES 6 babel必須實際添加名稱以創建命名函數表達式之前,這實際上沒有標准化:

var foo = function foo() {}; // notice it's function *foo* now

支持傳統環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM