ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のパラメーターなしおよびパラメーター化されたクラス継承の問題の解決策_JavaScript スキル
JavaScript のクラス継承に関しては、プロトタイプ チェーンと切り離すことができませんが、プロトタイプ チェーンのみを介して実装された継承には多くの欠陥があります。
パラメータなしのクラス継承に関する問題
まず、A を継承して B を実装するサンプル コードを見てみましょう:
関数 B() {
}
B.prototype = new A();
B.prototype.b1 = function() { };
var b = new B();
alert(b.constructor == A) // true
alert(b.constructor == B); // false
1. A を B のプロトタイプとしてインスタンス化する必要があります。このとき、A のコンストラクターが実行されます。しかし、オブジェクト指向の規則によれば、B をインスタンス化する前に、B とその親クラス A のコンストラクターを実行すべきではありません。
2. B のプロトタイプを変更し、b.constructor が B ではなく A になりました。
パラメータクラスの継承に問題があります
A と B の両方に 2 つの文字列パラメーター s1 と s2 があるとします。A は、s1 と s2 をパラメーターとして使用して A を直接呼び出します。
}
B.prototype = new A();
B.prototype.b1 = function() {
};