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