この解答例は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オブジェクトを参照します。