码迷,mamicode.com
首页 > Web开发 > 详细

JS 设计模式之单例模式

时间:2019-12-18 21:35:46      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:应该   pre   全局变量   new   开发人员   经验   是什么   如何使用   冲突   

?一、概念:

  • 一个类

  • 仅有一个实例

  • 提供一个访问它的全局访问点

?二、实现:

class SimpleOne {     
    constructor (name) {         
        this.name = name;     
    }     
    getName (propsName) { 
        this.name = propsName;         
        return typeof this.name;     
    } 
}

const a = new SimpleOne('a').getName();
const b = new SimpleOne('b').getName();

a === b // true

?三、JavaScript单例模式

????在我们的开发中,很多同学可能并不知道单例到底是什么,应该如何使用单例,但是他们所写的代码却刚好满足了单例模式的要求。

????如要实现一个登陆弹窗,不管那个页面或者在页面的那个地方单击登陆按钮,都会弹出登录窗。一些同学就会写一个全局的对象来实现登陆窗口功能,是的,这样的确可以实现所要求的登陆效果,也符合单例模式的要求,但是这种实现其实是一个巧合,或者一个美丽的错误。

????由于全局对象,或者说全局变量正好符合单例的能够全局访问,而且是唯一的。但是我们都知道,全局变量是可以被覆盖的,特别是对于初级开发人员来说,刚开始不管定义什么基本都是全局的,这样的好处是方便访问,坏处是一不留意就会引起冲突,特别是在做一个团队合作的大项目时,所以成熟的有经验的开发人员尽量减少全局的声明,而在开发中我们避免全局变量污染的通常做法如下:

  • 全局命名空间
  • 使用闭包

JS 设计模式之单例模式

标签:应该   pre   全局变量   new   开发人员   经验   是什么   如何使用   冲突   

原文地址:https://www.cnblogs.com/JockerM/p/12063563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!