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

BFE.devでのAI解答例 - JavaScript コーディング問題
26. Object.assign()を実装する

function myAssign(target, ...sources) {
  if (typeof target !== "object" || target === null) {
    throw new TypeError("Target must be an object");
  }

  sources.forEach((source) => {
    if (typeof source !== "object" || source === null) {
      return;
    }
    Object.keys(source).forEach((key) => {
      target[key] = source[key];
    });
  });
  return target;
}

この実装では、targetと1つ以上のsourcesを受け取ります。まず、targetがオブジェクトであることを確認し、TypeErrorをスローします。次に、それぞれのsourcesについて以下を行います。

  • もしsourceがオブジェクトでない場合、何もしません。
  • そうでない場合、sourceの各プロパティについて、そのプロパティをtargetにコピーします。

最後に、targetを返します。