私は、継承に基づいて、コンストラクタ名のチェーンを生成し得ます。しかし、それは非常にハッキー/醜いようです。それを行うためのより良い方法がありますか、それが未知数のレベルで深く働くようにする方法はありますか?私はSUV車拡張車両を拡張している場合はjsはコンストラクタ名のチェーン
1
A
答えて
3
私は期待して「Vehicle.Car.SUV」
私はあなたが開始するコンストラクタで始まり、そして終わるgetPrototypeOf
とループを、使用したいですそのコンストラクタのプロトタイプは、Function.prototype
またはnull
のとき:
function getLineage(ctor) {
let name = ctor.name;
while ((ctor = Object.getPrototypeOf(ctor)) != Function.prototype && ctor) {
name = ctor.name + "." + name;
}
return name;
}
class Vehicle { }
class Car extends Vehicle { }
class SUV extends Car { }
console.log(getLineage(SUV));
.
ではなく、別のセパレータを使用することをお勧めします。SUV
はCar
のプロパティですが、もちろんそうではありません。 :-)
+0
完全に動作します。私は選んだ。 typescripts名前空間の構文に基づいています。 (彼らは別の名前空間とクラスを持っています。 – Chris
関連する問題
- 1. C++でのコンストラクタのチェーン
- 2. 継承チェーンはコンストラクタ呼び出しのチェーンを作成しますか?
- 3. JS:コンストラクタ
- 4. コンストラクタなしでチェーン化する()
- 5. ノードJS、可変数のhttpリクエストのチェーン
- 6. ノードJS RESTコールエラー:証明書チェーンの自己署名入り証明書
- 7. Javascriptでは、コンストラクタ・プロパティがプロトタイプ・チェーンの一番下のコンストラクタを指しているのはなぜですか?
- 8. JSチェーンの先頭のアンダースコアは何ですか?
- 9. JSコンストラクタ関数と配列
- 10. Ocamlのコンストラクタ名の略語
- 11. 同じコンストラクタ名エラー
- 12. 移動コンストラクタ署名
- 13. Scala.jsネイティブJSタイプのネイティブのJavascriptのコンストラクタ
- 14. オブジェクトのコンストラクタ名を取得
- 15. 名前空間内のコンストラクタ
- 16. コンストラクタ名の前にキーワードstruct
- 17. AuthenticationContext.createAsyncとUWP JSアプリケーションのAuthenticationContextコンストラクタ
- 18. Nightwatch JSのページをどのようにチェーン化しますか?
- 19. Ajaxのコールバックはチェーン
- 20. JS関数のチェーンを再定義する方法
- 21. JS sequelizeチェーン協会は、私は三つのモデルを持っている
- 22. はフルsubordintionチェーン
- 23. コンストラクタ無名オブジェクトを返す
- 24. コンストラクタでクラス名を取得
- 25. チェーン(* iter)とチェーン.from_iterable(iter)
- 26. 式 'xxxx'の結果がJSのコンストラクタではありません
- 27. チェーン
- 28. チェーン
- 29. チェーン
- 30. チェーン
これの背後にある目標は何ですか? –
^^たとえば、最終結果は何ですか? –
私は、後でサーバー上で正確に同じクラスのインスタンスを作成するために使用することができるWebRequestを通じて識別子を渡す必要があります – Chris