次の Javascript スニペットを検討してください。
var SuperClass = function(x){
this.x = x;
this.a = 5;
};
var SubClass = function(x){
}
function IntermediateClass(){};
IntermediateClass.prototype = SuperClass.prototype;
SubClass.prototype = new IntermediateClass;
SubClass.prototype.constructor = SubClass;
SubClass のインスタンスを作成すると、オブジェクトはプロパティ "a" と "x" を初期化しません。
var object = new SubClass;
//object.a == undefined
//object.x == undefined
なぜこれが起こるのかは理解できますが、サブクラスがスーパークラスコンストラクターによって行われた初期化を実行する最もクリーンな方法は何ですか?