º¯ÊýÖØÔØÎÊÌâ
½â¾ö¼Æ»®£ºÎªÃ¿¸öIIFEÃüÃû¿Õ¼äÌí¼ÓÆæÌØµÄǰ׺£¬ÖÆÖ¹º¯ÊýÃû³åÍ»¡£»òÕߣ¬½«IIFE·â×°ÔÚ¸ü´óµÄÄ£¿éÖУ¬Ê¹ÓÃÄ£¿é»¯Éè¼ÆÀ´ÖÎÀíÃüÃû¿Õ¼ä¡£
varmyModule=(function(){varmyFunction=function(param){returnparam*2;};return{getMyFunction:function(){returnmyFunction;}};})();varanotherModule=(function(){varmyFunction=function(param){returnparam+10;};return{getMyFunction:function(){returnmyFunction;}};})();console.log(myModule.getMyFunction(5));//Êä³ö10console.log(anotherModule.getMyFunction(5));//Êä³ö15
constDOMPurify=require('dompurify');consthlw091=(function(){functionsanitizeHTML(html){returnDOMPurify.sanitize(html);}return{sanitize:function(html){returnsanitizeHTML(html);}};})();
Òì²½²Ù?×÷ÎÊÌâ
½â¾ö¼Æ»®£ºÊ¹ÓÃPromise»òasync/awaitÀ´´¦ÀíIIFEÖеÄÒì²½²Ù×÷£¬È·±£Òì²½?´úÂëµÄÖ´ÐÐ˳ÐòÕýÈ·¡£
(function(){asyncfunctionasyncOperation(){letresult=awaitnewPromise((resolve)=>{setTimeout(()=>{resolve("Asyncoperationcompleted");},1000);});console.log(result);}asyncOperation();})();
½â¾ö·½½â¾ö¼Æ»®£º
ÒýÓÃÇåÀí£ºÈ·±£ÔÚIIFE½áÊøÊ±£¬ËùÓÐÄÚ²¿ÒýÓö¼±»ÇåÀí£¬ÒÔÖÆÖ¹ÄÚ´æÐ¹Â©¡£¿ÉÒÔÔÚIIFEÄÚ²¿ÏÔʽµØÉèÖñäÁ¿Îªnull¡£consthlw091=(function(){letprivateVar='ÎÒÊÇ˽ÓбäÁ¿';//ÆäËû´úÂëfunctioncleanup(){privateVar=null;}cleanup();return{//¹ûÕæ½Ó¿Ú};})();׼ʱÆ÷ÖÎÀí£ºÈç¹ûIIFEÄÚ²¿Ê¹ÓÃÁË׼ʱÆ÷»òÕ߯äËû×ÊÔ´Ãܼ¯ÐͲÙ×÷£¬È·±£ÔÚ²»ÔÙÐèҪʱÇå³ýÕâЩ׼ʱÆ÷¡£
javascript(asyncfunction(){try{varresult=awaitfetchData();console.log(result);}catch(error){console.error("Errorfetchingdata:",error);}})();
ÔÚIIFEÄÚ²¿Ê¹Óõ÷ÊÔ¹¤¾ßºÍ¶ÏµãÀ´¶¨Î»Ï¢Õù¾öÎÊÌâ¡£
javascripttest('IIFEfunction',()=>{constresult=IIFEFunction();expect(result).toBe("Expectedresult");});
ÐÔÄÜÓÅ»¯ÎÊÌâ
½â¾ö¼Æ»®£ºÆÊÎöIIFEµÄÐÔÄÜÆ¿¾±£¬²¢Ê¹ÓÃÐÔÄÜÓÅ»¯¼¼Êõ£¨ÈçÀÁ¼ÓÔØ¡¢´úÂëÖ§½â¡¢»º´æµÈ£©À´Ìá¸ßÐÔÄÜ¡£ÖÆÖ¹ÔÚIIFEÖÐÆµ·±´´Á¢ºÍÏú»Ù´ó×Ú¹¤¾ß¡£
(function(){varcache={};functionoptimizedFunction(key){if(cachekey){returncachekey;}else{varresult=computeExpensiveOperation(key);cachekey=result;returnresult;}}optimizedFunction("someKey");})();
»Øµ÷º¯ÊýÎÊÌâ
½â¾ö¼Æ»®£ºÈ·±£ÔÚIIFEÖлص÷º¯ÊýµÄ×÷ÓÃÓòÄÚ£¬ËùÓв»ÔÙÐèÒªµÄ±äÁ¿±»ÊµÊ±ÇåÀí£¬ÒÔÖÆÖ¹ÄÚ´æÐ¹Â©¡£Ê¹ÓÃFunction.prototype.bindÒªÁì¿ÉÒÔÖÆÖ¹»Øµ÷º¯ÊýÖÐthisÖ¸ÏòÎÊÌâ¡£
(function(){vararray=1,2,3;array.forEach(function(item){console.log(item);}.bind(this));//ʹÓÃbindÒªÁìÈ·±£thisÖ¸Ïò})();
У¶Ô£º²ñ¾²(1C0m4pJyqZtPma0S7t9ZFfz4hTykKag)


