JavaScript单例模式

代码

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

// 创建登录框
var createLoginDialog = function () {
  var div = document.createElement("div");
  div.innerHTML = "Login Dialog";
  div.style.display = "none";
  document.body.appendChild(div);
  return div;
};

// 创建唯一登录框
var createSingleLoginDialog = getSingle(createLoginDialog);

document.getElementById("login").onclick = function () {
  var loginDialog = createSingleLoginDialog();
  loginDialog.style.display = "block";
};