私は、Javascript で「prototype」プロパティを使用する (および間接的にプロトタイプ チェーンを設定する) ことで、JavaScript で複数レベルの継承を実装できることを確認しました。しかし、何らかの方法でJavascriptに多重継承を実装することは可能ですか? 簡単な例はどれも素晴らしいでしょう。
質問する
2169 次
3 に答える
5
単純な継承を実装するには、通常行います
MyClass.prototype = new MySuperClass();
ただし、別の「クラス」のコンテンツをコピーすることもできます。
MyClass.prototype = new MySuperClass();
var myOtherSuperClass = new MyOtherSuperClass();
for (var key in myOtherSuperClass) {
MyClass.prototype[key] = myOtherSuperClass[key];
}
もちろん、jQuery.extendなどのユーティリティを使用してそれを行うことも、独自にロールすることもできます。
限界はそれinstanceof
が検出されないことMyOtherSuperClass
です。
于 2013-03-18T09:31:16.190 に答える
1
明確にするために、JS には多重継承がありません。
各オブジェクトは、プロトタイプを 1 つだけ持つことができます。
ただし、すべてが可変であるため、拡張メソッドのすべてである「ミックスイン」をサポートできます。あるオブジェクトのキーを別のオブジェクトにコピーするだけです。ただし、それは実際には継承ではありません。通常、そのスキームでは、結果のオブジェクトには、オブジェクトである 1 つのprotoのみが含まれます。
于 2013-04-20T21:23:48.417 に答える
1
JavaScript で多重継承を実装することは可能ですが、これを行うライブラリはほとんどありません。私が知っている唯一の例はRing.jsです。
もちろん、プロトタイプだけに頼っているわけではないので、うまくいきinstanceof
ません。しかし、ライブラリはその代わりを提供するので、大したことではありません。
于 2013-07-13T12:54:18.760 に答える