これは、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
プロパティを使用します。