看板 Ajax 關於我們 聯絡資訊
各位前輩們早安、午安、晚安。 小弟又來打擾各位了!! 承蒙各位前輩們不吝指教, 小弟已經對於此種匿名函式有個初步的了解, 感謝各位前輩!! 這次小弟想要問的是, 關於這種匿名函式,也就是: (function(){....}())這種用法, 很多大大們提到說, 如此一來, 比較不容易變數汙染。 咦?恕小弟愚昧,這時候小弟就有點問題想要請教, 假設(function($,window){...}(jQuery,window)) 所以大括弧裡面的程式用到$字號以及window變數, 都等於後面小括弧裡的jQuery及window變數, 那如果外層有別的程式呼叫到window這個變數 此函式後面那個小括弧裡的window變數的值會不會受影響? 第二個問題 假設var a=(function(){...}()) 為什麼a可以在大括弧裡面直接被引用? ※ 引述《leochen0818 (米拔)》之銘言: : 各位前輩們早安、午安、晚安。 : 小弟不才,在這裡有一個小小的問題想要請教一下大家, : 其實有很多問題啦... : 不過我先問第一個問題@@ : 請問教一下各位前輩 : (function($,window,console,Modernizr){ : ... : .. : .. : ... : }(jQuery,window,console,Modernizr) : 這樣寫是甚麼意思?@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.79.175 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1399615416.A.000.html
mrbigmouth:第一個問題 會 Javascript的傳遞物件都是傳址 05/09 14:06
mrbigmouth:第二個問題 所有var動作本來就會被升到scope最頂部 05/09 14:06
mrbigmouth:所以大括弧裡的程式執行時a已經宣告了 使用上沒問題 05/09 14:07
mrbigmouth:(只是當{}裡的程式執行完畢後 a的內容會再度被return值 05/09 14:07
mrbigmouth:給覆蓋) 05/09 14:07