javascript
(转)javascript匿名函数
文章來源:?http://hi.baidu.com/koen_li/blog/item/4b14e4fc0c9b140c08244d8c.html
| 匿名函數(shù)的寫法 顧名思義,就是沒有名字的函數(shù)(⊙﹏⊙b汗)。匿名函數(shù)通常用于javascript作用域的控制,可以有效的避免對全局變量的污染。常見的匿名函數(shù)有下面四種寫法,歡迎補充: 匿名函數(shù)寫法一 (function(){//do something})();匿名函數(shù)寫法二 !function(){//do something}();上面!還可以寫成+,!!等多種方式。 匿名函數(shù)寫法三 (function(){//do something}());匿名函數(shù)寫法四 voidfunction(){//do something}();剛才微博上@樸靈 提出來:寫法三比較安全,正如網(wǎng)友@Rain的留言,匿名函數(shù)上面的寫法都存在前后文;問題,所以需要注意的是匿名函數(shù)在壓縮工具打包壓縮后會出現(xiàn)上下文錯誤合并()的問題,例如第一種寫法,如果下面的代碼,未壓縮之前是正常的,壓縮后就不正常了,所以要嚴(yán)格上下文的;問題,而第三種就不會出現(xiàn)類似問題: var?a?=function(){}(function(){alert(1);})();上例中就出現(xiàn)了錯誤,這就是因為a函數(shù)會把他后面的匿名函數(shù)作為參數(shù)傳入a中,這也就解釋了為什么有人習(xí)慣在匿名函數(shù)之前添加;了,就是為了防止上文沒有嚴(yán)格遵循javascript語法,漏掉;的問題。 匿名函數(shù)的傳參 匿名函數(shù)可以通過下面的方式進行傳參: (function(win,?doc){var?$?=function(id){return?doc.getElementById(id);}?win.$?=?$;})(window,?document);匿名函數(shù)的遞歸 匿名函數(shù)中要引用本身,需要使用arguments.callee,下面是使用匿名函數(shù)實現(xiàn)的連乘。 (function(n){if(n?<=0){return1;}else{return?n?*?arguments.callee(n-1);}})(4); |
轉(zhuǎn)載于:https://www.cnblogs.com/caly/archive/2011/12/27/2303245.html
總結(jié)
以上是生活随笔為你收集整理的(转)javascript匿名函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小小c#算法题 - 3 - 字符串语句反
- 下一篇: Google Xpath Helper