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