es5中单例模式怎么写
时间: 2024-05-11 20:02:14 浏览: 158
在ES5中,可以使用函数闭包和立即执行函数表达式(IIFE)来实现单例模式。以下是一个示例:
```javascript
var Singleton = (function () {
var instance;
function createInstance() {
var object = new Object("I am the instance");
return object;
}
return {
getInstance: function () {
if (!instance) {
instance = createInstance();
}
return instance;
}
};
})();
// 使用示例
var instance1 = Singleton.getInstance();
var instance2 = Singleton.getInstance();
console.log(instance1 === instance2); // true
```
在这个示例中,`Singleton`是一个立即执行函数表达式,它返回一个包含`getInstance`方法的对象。`getInstance`方法返回单例对象的实例。在`createInstance`函数中创建了单例对象的实例,并通过闭包保存在变量`instance`中,如果实例已经存在,则直接返回该实例。这样可以确保只有一个实例被创建,并且可以在全局范围内访问该实例。
阅读全文