惰性函數它比較懶,不會立即執行。只有需要的時候才去執行創建或加載一些資源對象。
舉個簡單的例子。最近登錄流行微信登錄。鼠標滑過登錄按鈕,出現微信登錄的二維碼,供訪客用手機掃描。
var getWXQrCode=(function( callbackFn ){
var obj;
return function(){
if(!obj){
loadScript('http://www.qq.com/xx.js',function(){
obj= WxLogin;
callbackFn( obj)
}else{
callbackFn( obj)
}
}
})();
然后在mouseover過登錄按鈕的時候調用
getWXQrCode( callback )
即可實現js只在需要的時候加載一次。再次調用只返回閉包中儲存的WxLogin對象。