ES6クラスインスタンスからクラス名を取得する「調和のとれた」方法はあるでしょうか?
someClassInstance.constructor.name
現在、私は Traceur の実装を頼りにしています。また、Babel にはポリフィルがありますがFunction.name
、Traceur にはないようです。
まとめると、ES6/ES2015/Harmony では他に方法はなく、ES.Next でも現時点では何も期待されていません。
これは、縮小されていないサーバー側アプリケーションには便利なパターンを提供する可能性がありますが、ブラウザ/デスクトップ/モバイル向けのアプリケーションでは不要です。
バベル用途core-js
ポリフィルするFunction.name
ただし、Traceur および TypeScript アプリケーションの場合は、必要に応じて手動で読み込む必要があります。
ベストアンサー1
someClassInstance.constructor.name
まさに正しい方法です。トランスパイラはこれをサポートしていないかもしれませんが、仕様ではこれが標準的な方法です。(name
ClassDeclarationプロダクションで宣言された関数のプロパティは、14.5.15、ステップ 6。