この解答例は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.prototypeF() に割り当て、それを SubType.prototype のプロトタイプに設定します。そして、 SubType.prototype.constructor を再設定し、 SubType を返します。

この例外は SubTypeSuperType のプロトタイプを設定することで、 SubType は継承されるのと同じメソッドとプロパティを持ちます。 instance の例は InheritedSubType のインスタンスを作成するために使用されるものです。