單例模式的定義是:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點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'; } };