惰性单例

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';
}; 

 

 

 

 

 摘自JavaScript设计模式与开发实践

posted on 2017-02-22 18:34  传说中的页面仔  阅读(100)  评论(0编辑  收藏  举报