この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
60. `new` を実装する

function myNew(Constructor, ...args) {
    // Constructorのprototypeを新しいオブジェクトの__proto__に設定する
    let newObj = Object.create(Constructor.prototype);
    // Constructorを新しいオブジェクトのコンテキストで呼び出し、戻り値を取得する
    let returnedObj = Constructor.apply(newObj, args);
    // コンストラクタがObject以外のオブジェクトを返した場合はそれを返す
    if (returnedObj && (typeof returnedObj === "object" || typeof returnedObj === "function")) {
        return returnedObj;
    }
    // それ以外は新しいオブジェクトを返す
    return newObj;
}

myNew()は、渡されたConstructor関数を新しいオブジェクトのコンテキストで呼び出し、その戻り値がオブジェクトであればその戻り値を返します。そうでなければ、新しいオブジェクトを返します。また、新しいオブジェクトの__proto__プロパティはConstructorのprototypeオブジェクトを参照します。