gpt4 book ai didi

javascript - ES6 模块箭头函数导出不保留它们的名称

转载 作者:搜寻专家 更新时间:2023-11-01 04:35:16 25 4
gpt4 key购买 nike

为什么导出的箭头函数不保留它们的名称,有没有办法让它们这样做?

给出如下所示的 ES6 模块:

myModule.js

export function doSomeWork1() {
}
export const doSomeWork2 = () => {
};

如果我随后将它们导入到另一个文件中,那么导出的函数将保留其名称,而箭头函数则不会。

example.js

import { doSomeWork1, doSomeWork2 } from './myModule';
console.log('doSomeWork1...');
console.log(doSomeWork1);
console.log(doSomeWork1.name); // name is retained
console.log('doSomeWork2...');
console.log(doSomeWork2);
console.log(doSomeWork2.name); // name is NOT retained

输出:

doSomeWork1...
[Function: doSomeWork1]
doSomeWork1
doSomeWork2...
[Function]

如果我在 ES6 模块中声明箭头函数而不导出它并直接在该文件中打印出来,它会保留它的名称。

myModule.js

const doSomeWork3 = () => {
};
console.log('doSomeWork3...');
console.log(doSomeWork3);
console.log(doSomeWork3.name); // name is retained

输出:

doSomeWork3...
[Function: doSomeWork3]
doSomeWork3

最佳答案

我刚刚试过了,还导出了 let func123 = () => {}它也适用于“const”和“let”。也许是您正在使用的某些配置?你在使用 webpack 还是什么?

关于javascript - ES6 模块箭头函数导出不保留它们的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44091697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com