JSを数ヶ月使用した後、この動作に慣れました。私はJavaの背景のために非常に困惑しています。私はクラスを作成し、サブクラスを作成します。 サブクラスのコンストラクタを呼び出すと、親コンストラクタは呼び出されません。さて、私はこの動作について読んだ、それは正常なようだ、そう?継承:コンストラクタは "super"を実行しませんか?
これを参照してください。example明確にするために
は、だから私のサブクラスのコンストラクタは、親コンストラクタのそれぞれを実行させる、私はjsfiddle example
[OK]をご覧ください(以下を追加している、より良い、このように動作するようです。 は今、私は以下について思ったんだけど?
GameObject.prototype = new Node();
GameObject.prototype.constructor=GameObject;
(更新jsfiddle exampleを参照)
:;ウィッヒを指定する方法が引き金そのコンストラクタのないスーパークラスが存在しているようには例えば以下の は、Node()メソッドを実行します私はそれを正しくやっていないと感じることはできません。私の実際のモデルは7つのサブクラスにわたって階層化されているので、コンストラクタ(6 + 5 + 4 + 3 + 2 + 1 = 21)には合計21回の呼び出しがあります。
何か間違っていますか?御時間ありがとうございます!
ちょっといいですね、私は別の 'init'メソッドを持つというこの考えが好きです。ありがとう! – Jem
あなたはようこそ! – katspaugh
だから...ただコンストラクタを使用しないでください?これは問題を解決する良い方法ではありません。正しい方法は、継承を設定するだけで親のコンストラクタを呼び出すことを伴わない別の手法を使用することです。http://js-bits.blogspot.com/2010/08/javascript-inheritance-done-right.html –