この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript コーディング問題
53. es5で `extends`を実装する
解答例:
function myExtends(SuperType, SubType) { function F() {}; F.prototype = SuperType.prototype; SubType.prototype = new F(); SubType.prototype.constructor = SubType; return SubType;}const InheritedSubType = myExtends(SuperType, SubType)const instance = new InheritedSubType()
myExtends()
は、新しい F()
関数を作成し、 SuperType.prototype
を F()
に割り当て、それを SubType.prototype
のプロトタイプに設定します。そして、 SubType.prototype.constructor
を再設定し、 SubType
を返します。
この例外は SubType
に SuperType
のプロトタイプを設定することで、 SubType
は継承されるのと同じメソッドとプロパティを持ちます。 instance
の例は InheritedSubType
のインスタンスを作成するために使用されるものです。