1. ホーム
  2. javascript

[解決済み] ES6クラスインスタンスのクラス名取得

2022-04-20 14:28:02

質問

ES6のクラスインスタンスからクラス名を取得するための「調和的な」方法はありますか?それ以外には

someClassInstance.constructor.name

現在、Traceurの実装を頼りにしています。また、Babel には Function.name Traceurにはない。

結論から言うと、ES6/ES2015/Harmonyでは他に方法がなかったし、ES.NextでもATMは何も期待できない。

最小化されていないサーバーサイドのアプリケーションでは有用なパターンを提供するかもしれませんが、ブラウザ/デスクトップ/モバイル向けのアプリケーションでは不要です。

バベル 用途 core-js をポリフィルに Function.name TraceurとTypeScriptのアプリケーションでは、適宜、手動で読み込む必要があります。

解決方法は?

someClassInstance.constructor.name がまさに正しい方法です。トランスパイラーはこれをサポートしていないかもしれませんが、仕様書では標準的な方法です。(この name プロパティは、ClassDeclarationプロダクションを介して宣言された関数の 14.5.15 ステップ6)。