は、だから私は「雄弁のJavascript」からいくつかのコードを見ていることだし、それはあなたのような関数を書くかもしれない継承を引き起こすことを言う:プロトタイプをコピーするには新しいオブジェクトが必要ですか? JavaScriptの
function clone(object) {
function OneShotConstructor() {}
OneShotConstructor.prototype = object;
return new OneShotConstructor();
}
とクラスTerrarium
はすでにだった場合、そのようにそれを呼び出します定義された:私たちはそのプロトタイプをコピーするためにOneShotConstructor
を作成する必要がある理由
function LifeLikeTerrarium(plan) {
Terrarium.call(this, plan);
}
LifeLikeTerrarium.prototype = clone(Terrarium.prototype);
LifeLikeTerrarium.prototype.constructor;
だから私の質問です。なぜ我々はちょうどのようなものを書いたことができませんでした:
LifeLikeTerrarium.prototype = new Terrarium();
これは何か問題を作成するかどうか、それは不適切なJavaScriptですか?
また、私の最後のトリックのために、私はここで同様の対話を見つけました:http://pivotallabs.com/users/pjaros/blog/articles/1368-javascript-constructors-prototypes-and-the-new-keyword "ここではメソッドはcreateと呼ばれ、その理由はコンストラクタにパラメータを指定する必要はないと思われますが、なぜクローン/作成はコンストラクタのパラメータを与える必要があるという問題を解決しますか? – jrbalsano