この解答例は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
のインスタンスを作成するために使用されるものです。