Re: [問題] 關於jQuery

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

Links booklink

Contact Us: admin [ a t ] ucptt.com