美文网首页
js单例模式

js单例模式

作者: bigtom | 来源:发表于2016-08-08 16:40 被阅读66次

单例模式

单例表示只存在一个这样的对象。单例模式是一种非常重要的设计模式,有很多经典的应用场景,比如说,网站的登录用户对象应当是单例的,用户在登录过程中,不应该创建两个相同的用户对象。

IIFE实现

单例模式最简单的实现方案就是全局变量,不用通过函数调用来返回对象,不用构造器来生成对象,这样的对象天生就是单例。更好的方法是,我们用函数来生成单例。

function User(name){
  return {name:name}
}

我们首先创建一个返回用户对象的函数,这个函数并不能保证单例,因为每次调用这个函数返回的对象都是不同的。

var singleUser = (function(){
  var result;
  return function(name){
    return result || (result = {name:name})
  }
})();
console.log(singleUser("tom").name)   //tom
console.log(singleUser("jack").name)   //tom

这里我们使用了IIFE来实现了单例模式,我们在IIFE中设置了result变量,并返回一个可以引用到result变量的函数,当第一次创建单例时,result被初始化,之后如果又试图创建的时候,直接返回result。这样就能够成功的保证单例

正交化设计

var makeSingle = function(constructor){
  var result;
  return {
    create: function(){
      return result || (result = constructor.apply(this,arguments));
    }
  }
}

相关文章

  • 前端开发工程师必备系列-几个简单的JS单例模式

    前端开发工程师必备系列-几个简单的JS单例模式 JavaScript单例模式 1. 单例模式 单例模式(Singl...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • JavaScript-高级篇之单例模式

    单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点 JS特色的单例模式 惰性单例

  • JS_单例模式

    JS_单例模式 什么是单例模式? 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式的优点 可以用来...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • JS单例模式

    单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式是一种常用的模式,有一些对象我们往...

  • js 单例模式

    为何要有单例模式书中有举出一个实际场景,当我们点击登陆按钮时,页面中可能会出现一个弹框,而这个弹框是唯一的,无论点...

  • js单例模式

    概念:单例,指的就是只有一个实例的对象 var singleton = {name: 'singleton',me...

  • js单例模式

    单例模式 单例表示只存在一个这样的对象。单例模式是一种非常重要的设计模式,有很多经典的应用场景,比如说,网站的登录...

网友评论

      本文标题:js单例模式

      本文链接:https://www.haomeiwen.com/subject/nrdrsttx.html