js与设计模式----单例

通常我们会有这样的需求,制作一个模态窗口,我们用一个与body一样大的div来覆盖整个页面,当作一个荫罩层,那么此div应该是全局的而且唯一的。
利用js闭包的特性,写出以下代码。
 
var createMask = function (){
  var mask;
  return function (){
       return mask || ( mask = document.body.appendChild( document.createElement( 'div' ) ) )
  }
}()
 
那么我们现在拥有一个createMask()方法用于创建全局的div。包内有一个mask变量,用于在全局作用域保存这个div,并且不会因为这个函数的执行完毕而丢失。

你可能感兴趣的:(设计模式)