手写 实现单例模式

104 阅读1分钟
  • 单例模式是创建型模式

  • 确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点

  • 核心: 用闭包和Proxy属性拦截

function proxy(func) {
  let instance
  let handler = {
    construct(target, args) {
      if (!instance) {
        instance = Reflect.construct(target, args)
      }
      return instance
    },
  }
  return new Proxy(func, handler)
}