实现步骤

# 实现步骤

function myNew(fn, ...args) {
  // 1. 定义一个空对象
  const obj = {};

  // 2. 隐式原型指向构造函数的显示原型
  obj.__proto__ = fn.prototype;

  // 3. 执行构造函数,this指向空对象
  let result = fn.apply(obj, args);

  // 4. 根据返回值判断返回对象
  return result instanceof Object ? result : obj;
}