为了账号安全,请及时绑定邮箱和手机立即绑定

ES6 Proxy实现单例模式如何实现?

ES6 Proxy实现单例模式如何实现?

精慕HU 2019-02-12 21:21:42
const singletonify = fn => {  const one = new fn()  return new Proxy(fn, {    construct(target, argumentsList, newTarget) {      return one    }  })}class A () {}const SingleA = singletonify(A)const a1 = new SingleA()const a2 = new SingleA()const a3 = new SingleA()a1 === a2; //true, but why?a2 === a3; //true以上这段代码如何实现单例模式?为何每次创建的const one = new fn();都相同?
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

one被闭包引用了 在内存中一直存在
construct接口拦截了fn的实例化操作 直接返回one 也就是new A();

查看完整回答
反对 回复 2019-02-13
  • 1 回答
  • 0 关注
  • 553 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信