私はクラス/関数/プロトタイプの継承で少し遊んでいて、適切なセットアップが機能するようになりました。私が理解している簡単なこと。
http://jsfiddle.net/rudiedirkx/rwPeD/6/
デバッグの目的で、各コンストラクターで、そのコンストラクターを呼び出しているオブジェクトの種類を出力したいと考えました。たとえば、Ronin コンストラクターは Ninja コンストラクターを呼び出し、Ninja コンストラクターは Person コンストラクターを呼び出します。そのために私はget_class
関数を作りました:
function get_class(obj) {
var C = String(obj.__proto__.constructor);
return C.match(/function (\w+)\(/, C)[1];
}
そしてそれはうまくいきません。常に「Person」を返します。なんで?すべての「クラス」には独自のコンストラクタがありますね。すべてのコンストラクターでa を実行するconsole.log(this)
と、Chrome Devtools はオブジェクトの型を認識します。どうすればそこにたどり着くことができますか (バニラ JS を使用)?
PS。私のChromeでの完全な出力: