设计模式--单例模式

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点 ,例如当页面中的元素只创建一次时,重复创建时还是使用之前创建的元素时

  单例模式的核心函数,使用回调函数的形式,在函数内部调用要执行的函数,如果result存在就直接返回,如果不存在就执行创建result的回调函数

var getSingle = function( fn ){
  var result;
  return function(){
    return result || ( result = fn .apply(this, arguments ) );
  }
};

以上函数的使用方法

var createLoginLayer = function(){
  var div = document.createElement( 'div' );
  div.innerHTML = '我是登录浮窗';
  div.style.display = 'none';
  document.body.appendChild( div );
  return div;
};
var createSingleLoginLayer = getSingle( createLoginLayer );
document.getElementById( 'loginBtn' ).onclick = function(){
  var loginLayer = createSingleLoginLayer();
  loginLayer.style.display = 'block';
};
原文地址:https://www.cnblogs.com/wyongz/p/11353126.html