单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点javascript
时刻记住单一职责原则 , 把建立对象和管理单例分离。java
//管理单例 var getSingle = function(fn){ var result; return function(){ return result || (result = fn.apply(this,arguments)); } } //建立对象 var createLoginLayer = function(){ var div = document.createElement('div'); div.id='loginLayer'; div.innerHTML = '我是登陆窗口<a id="close" href="#">x</a>'; 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'; document.getElementById('close').onclick=function(){ var loginLayer = createSingleLoginLayer(); loginLayer.style.display = 'none'; } };