这是如何在 ES2015 中编写命名箭头函数的变体?问题,尽管具体目标是以使其可用于 Chrome CPU 分析器的方式命名函数对象。
我尝试了以下方法:
let unnamed;
unnamed = () => {
};
Object.defineProperty(unnamed, 'name', {
value: 'XXX'
});
Object.defineProperty(unnamed.constructor, 'name', {
value: 'YYY'
});
Object.defineProperty(unnamed, 'displayName', {
value: 'ZZZ'
});
console.log('unnamed.name', unnamed.name);
console.log('unnamed.constructor.name', unnamed.constructor.name);
console.log('unnamed.displayName', unnamed.displayName);
export default unnamed;
但是,无论我做什么,CPU 分析器都将其显示为(anonymous function)
.
有趣的是,如果您抛出错误,堆栈跟踪会使用displayName
属性。