当前位置: 首页 > wzjs >正文

access 可以做网站不wordpress文件路径

access 可以做网站不,wordpress文件路径,wordpress高德地图,搜索量查询单例设计模式 单例设计模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。 在 JavaScript 里,有多种实现单例设计模式的方式,下面为你详细介绍: 1. 简单对象字面量实现 这是…

单例设计模式

单例设计模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。
在 JavaScript 里,有多种实现单例设计模式的方式,下面为你详细介绍:

1. 简单对象字面量实现

  • 这是最简单的单例实现方式,利用对象字面量创建一个对象,该对象在整个应用程序里只会有一个实例。
const singleton = {property: 'value',method: function() {return this.property;}
};// 使用单例
console.log(singleton.method());

2. 构造函数结合闭包实现

  • 借助构造函数和闭包保证类只有一个实例。
const Singleton = (function() {let instance;function createInstance() {const object = {property: 'value',method: function() {return this.property;}};return object;}return {getInstance: function() {if (!instance) {instance = createInstance();}return instance;}};
})();// 使用单例
const instance1 = Singleton.getInstance();
const instance2 = Singleton.getInstance();
console.log(instance1 === instance2); // 输出: true

在这个例子中,Singleton 是一个立即执行函数,返回一个包含 getInstance 方法的对象。getInstance 方法会检查 instance 是否已经存在,若不存在则创建一个新实例,若存在则返回已有的实例。

3. ES6 类实现

  • 在 ES6 中,可以使用类和静态方法来实现单例模式。
class Singleton {constructor() {if (!Singleton.instance) {this.property = 'value';Singleton.instance = this;}return Singleton.instance;}method() {return this.property;}
}// 使用单例
const instance3 = new Singleton();
const instance4 = new Singleton();
console.log(instance3 === instance4); // 输出: true// 在这个例子中,Singleton 类的构造函数会检查 Singleton.instance 是否已经存在,
// 若不存在则创建一个新实例并将其赋值给 Singleton.instance,若存在则返回已有的实例。

4. 使用 WeakMap 实现

  • WeakMap 可用来存储对象的私有数据,能够借助它实现单例模式,保证单例的私有性。
const Singleton = (function() {const instanceMap = new WeakMap();class SingletonClass {constructor() {if (instanceMap.has(this)) {return instanceMap.get(this);}this.property = 'value';instanceMap.set(this, this);}method() {return this.property;}}return SingletonClass;
})();// 使用单例
const instance1 = new Singleton();
const instance2 = new Singleton();
console.log(instance1 === instance2); 

在这个示例中,运用 WeakMap instanceMap 来存储单例实例。当创建 SingletonClass 的新实例时,会先检查 instanceMap 里是否已有该实例,若有则返回已有实例,若无则创建新实例并将其存入 instanceMap。

5. 模块模式实现

在 JavaScript 模块系统里,模块只会被加载一次,这就保证了模块内部的变量和函数只有一个实例,能够利用这个特性实现单例模式。

// singletonModule.js
const singleton = {property: 'value',method: function() {return this.property;}
};
export default singleton;// main.js
import singleton from './singletonModule.js';console.log(singleton.method()); 

6. 使用 Proxy 实现

  • 可以借助 Proxy 来拦截对象的创建过程,以此保证对象只有一个实例。
const Singleton = new Proxy(function() {}, {instance: null,construct(target, args) {if (!this.instance) {this.instance = new target(...args);}return this.instance;}
});class MyClass {constructor() {this.property = 'value';}method() {return this.property;}
}const instance1 = new (Singleton(MyClass))();
const instance2 = new (Singleton(MyClass))();
console.log(instance1 === instance2); 

在这个示例中,使用 Proxy 拦截了对象的构造过程,当第一次创建对象时,会创建一个新实例并存储在 instance 属性中,后续再创建对象时,会直接返回已有的实例。

http://www.dtcms.com/wzjs/822452.html

相关文章:

  • 怎么查网站到期时间吉林市网站建设优化
  • 中文简洁网站设计图包头网站建设公司良居网络
  • 在线购物网站功能模块关联词有哪些小学
  • 上海外企公司有哪些有口碑的镇江网站优化
  • 重庆企业网站推广方法网站开发语言一般是用什么
  • 网站开发基本构成怎样做网站推广啊抖音
  • 如何建做校园购物网站做外贸需要浏览外国网站
  • 凡科建站和wordpresswordpress仪表盘美化
  • 陕西建设银行官网站网站搭建徐州百度网络搭建
  • 石景山附近的保安公司网站后台seo设置
  • 凡科 如何建设网站流程营销型网站建设 博客
  • 怎么帮网站做支付接口wordpress资讯主题模板
  • 微信视频网站怎么做网站开发宣传语
  • 韶关市住房和城乡建设局网站手机网站建设用乐云seo
  • 助企建站wordpress后台升级
  • 化妆品网站建设说明杭州制作公司网站
  • 1核1g服务器做网站丰都网站建设哪家好
  • 网站构架图鹤壁seo
  • 藁城区建设局网站微信小程序的开发步骤流程
  • 免费网站域名注册申请哪里有好看的网站
  • pc网站转wap网站定制网站建设广告
  • 上海网站建设app扬中潘杰简历
  • 下载什么网站做吃的网站后台编辑器不能用
  • 上海做网站 公司有哪些找一些好的网站建设案例
  • 网站设计 版权保险代理人做网站
  • 打开一个网站在建设中龙之向导外贸经理人网站
  • 江苏荣邦建设有限公司网站js网站一键变灰
  • 微平台网站开发传奇网站如何建设
  • 搜索引擎网站有哪些2018做网站用什么开发
  • 网站流程图软件建购物网站 资质