私の目標は、他の関数のプロトタイプからメイン機能の(この)コンテキストにプロパティを追加することですSubmainプロトタイプでcall()を使用するには?
function Main() {
Submain.call(this);
//from here I want to be able to use this.a, this.b, this.c, this.d
//...Main code...
}
function Submain() {
//this works fine
this.a = 1;
this.b = 2;
//this does not work because of the context
this.doThis();
}
Submain.prototype.doThis = function() {
this.c = 3;
this.d = 4;
}
ので、この目的のためにSubmainプロトタイプを使用する方法?
私はあなたが何を得ているかを見ます。私はあなたが望んでいた解決策の種類を知らない。あなたが提供したオブジェクトにはそのメソッドがありません。 'Main'または' Main.prototype'の中に手動で置くこともできますが、それはあまりいいとは言えません。このようにコードを配置した特別な理由はありますか? –
プロトタイプを使用する代わりにdoThingメソッドを追加できます。しかし、悪い選択です(多くのオブジェクトでのパフォーマンスへの影響)。 Submainプロトタイプ [こちらを参照](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)のメインプロトタイプをコピーして、プロトタイピングチェーンの仕組みを理解することをお勧めします。 – allevo
実際、私のメインプロトタイプは巨大なので、モジュール化するためにいくつかのファイルに分割したいと考えています。 Sub = new Submain()を使用して、sub.c、sub.dを使用することができますが、他の解決策があるかどうかは私自身に尋ねました。 – zbeyens