js如何使用代理实现单例?
网友回复
在JavaScript中,可以通过使用代理(Proxy)来实现单例模式。
代理是一种面向对象编程中的设计模式,它提供了一个代理对象来控制对另一个对象的访问。在单例模式中,我们可以使用代理对象来控制对单例对象的访问,从而保证单例对象只被创建一次。 以下是使用代理实现单例模式的示例代码:
let instance = null; class Singleton { constructor() { if (!instance) { instance = new RealSingleton(); } return instance; } } class RealSingleton { constructor() { // 单例对象的初始化操作 } } // 使用代理来访问单例对象 const proxy = new Proxy(Singleton, { construct(target, args) { return new target(...args); } }); // 创建单例对象 const singleton = new proxy(); // 尝试创建新的实例 const anotherSingleton = new proxy(); // 输出单例对象的引用是否相同 console.log(singleton === anotherSingleton); // true