单例模式也称作为单子模式,更多的也叫做单体模式。为软件设计中较为简单但是最为常用的一种设计模式。
单例模式的介绍:
在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为。比如在整个系统的配置文件中,配置数据有一个单例对象进行统一读取和修改,其他对象需要配置数据的时候也统一通过该单例对象来获取配置数据,这样就可以简化复杂环境下的配置管理。
单例模式的思路是:一个类能返回一个对象的引用(并且永远是同一个)和一个获得该实例的方法(静态方法,通常使用 getInstance 名称)。那么当我们调用这个方法时,如果类持有的引用不为空就返回该引用,否者就创建该类的实例,并且将实例引用赋值给该类保持的那个引用再返回。同时将该类的构造函数定义为私有方法,避免其他函数使用该构造函数来实例化对象,只通过该类的静态方法来得到该类的唯一实例。
一般情况下,Javascript每次new一个对象就产生一个实例,实例指向不同的地址。就像如下:
(function(){ function Person(name){ this.name = name; } Person.prototype.work = function(){ console.log(this.name + " is working"); } var p1 = new Person("Darren"); p1.work(); var p2 = new Person("Jack"); p2.work(); }());
以上,每次new出一个Person对象都是不同的。
如何在Javascript中实现单例模式呢?
--在生成某各对象时先判断是否存在。存在就不生成对象,不存在就生成对象。
(function(){ var PersonSingleton = (function(){ var instance; function init(){ return { name: 'Anonymous', work: function(){ console.log(this.name + ' working'); } }; } return { getInstance: function(){ if(!instantiated){ instantiated = init(); } return instantiated; } } })(); var p1 = PersonSingleton.getInstance(); p1.work(); var p2 = PersonSingleton.getInstance(); p2.work(); }());
以上,通过PsonSIngleton对象的getInstance方法得到的实例每次都是一样的。
关于javascript单例模式的相关知识就给大介绍到这里,希望对大家有所帮助。
标签:
javascript单例模式
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“Javascript实现单例模式”评论...
更新动态
2024年11月13日
2024年11月13日
- 群星《唱给女人的歌》24K德国HD金碟[WAV+CUE]
- 孙燕姿.2011-是时候【美妙音乐】【WAV+CUE】
- 苏芮.2003-回首·时代全经典2CD【华纳】【WAV+CUE】
- 梁咏琪.1996-爱自己【EEI】【WAV+CUE】
- IGN经典逆天骚操作名著——《墙头草修炼手册》
- 突然爆火的“网红游戏”,真的有那么多人玩吗?
- 何老师客串《浪人崛起》了?盘点与明星撞脸的角色!
- 【原神】关于星鹫赤羽对珐芙琴班配队下珐露珊主C的适配度分析
- 【原神】V5.1攻略 | 迪西雅角色简评
- 【原神】大日御舆顶端怎么上去
- 胥拉齐《感谢有你》DTS-WAV
- 罗海英《金牌歌后》【WAV+CUE】
- 林叶《林叶·夜》【WAV/分轨】
- 群星《国语经典名曲01》音乐磁场系列[WAV+CUE][1G]
- 齐豫《滚石24K》24K金碟珍藏版系列[低速原抓WAV+分轨][1G]