私の現在のWebプロジェクトでは、それぞれが他の型から継承した型定義を含む複数のJavaScriptファイルを扱っています。に面倒になり、多くのJavaScriptファイルを扱うのでJavaScript継承とホイスト
function ParentType(){
this.data = "";
}
:だから、任意のファイルで、私は別のファイルにも同様に宣言ParentType
で... ...のような
function Type(){
ParentType.call(this);
}
Type.prototype = Object.create(ParentType.prototype);
Type.prototype.constructor = Type;
を何かを持っている可能性があり<head>
タグでは、ファイルを1つのファイル(master.js
)に連結するbashスクリプトを書いています。そうすれば、私は自分のHTMLで1つのファイルをリンクすることができます。
子が1つだけのタイプの場合、ファイルの連結順序に関係なく、プロトタイプチェーンが正しく構築されます。
function Type(){
ParentType.call(this);
}
Type.prototype = Object.create(ParentType.prototype);
Type.prototype.constructor = Type;
function ParentType(){
this.data = "";
}
私はいずれのシナリオでType
のインスタンスを作成すると、ParentType.prototype.isPrototypeOf(typeobj)
戻る真(typeobj
である。換言すれば、このスニペットは...
function ParentType(){
this.data = "";
}
function Type(){
ParentType.call(this);
}
Type.prototype = Object.create(ParentType.prototype);
Type.prototype.constructor = Type;
...このスニペットと同じ作用します私のインスタンスはType
です)。しかし
、私は「プロトタイプチェーン」、ファイルが順に連結されているときにのみ機能、すなわちの最後に別のタイプを追加します。
function ParentType(){
this.data = "";
}
function Type(){
ParentType.call(this);
}
Type.prototype = Object.create(ParentType.prototype);
Type.prototype.constructor = Type;
function ChildType(){
Type.call(this);
}
ChildType.prototype = Object.create(Type.prototype);
ChildType.prototype.constructor = ChildType;
...とそうでない場合は、チェーン」休憩 "。私が一人の子供のシナリオで大丈夫だと思うのは、両方の型定義が吊り上げられ、プロトタイプチェーンについて心配するステートメントのセットが1つしかないからです。しかし、マルチリンクのプロトタイプチェーンでは、ステートメントが順不同であれば、チェーンは正しく接続されません。
私が本当に求めているのは、は、ファイルが連結されている順番に関係なく、JavaScriptで継承を実装する方法です。私は最初にclass
とextends
のやり方をしていましたが、それでもclass
の定義が吊り上げられていないことを知っていました!
注:「作品」で、私が意味するすべてのサブタイプは、両親、そしてその両親のプロトタイプのいずれに対してチェック任意のオブジェクトのための真isPrototypeOf
リターン(すべての)から機能/値を継承という点です。
+1は実際の質問に答えるために、これは私が探していたもの(私の他の選択肢を探究する)です。外部ソースを使いたい場合を除いて、スクリプトを洗練させないようにする良い方法はないようです。 – user1819699