Re: [問題] 關於jQuery

看板Ajax作者 (米拔)時間11年前 (2014/05/09 14:03), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串2/2 (看更多)
各位前輩們早安、午安、晚安。 小弟又來打擾各位了!! 承蒙各位前輩們不吝指教, 小弟已經對於此種匿名函式有個初步的了解, 感謝各位前輩!! 這次小弟想要問的是, 關於這種匿名函式,也就是: (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

05/09 14:06, , 1F
第一個問題 會 Javascript的傳遞物件都是傳址
05/09 14:06, 1F

05/09 14:06, , 2F
第二個問題 所有var動作本來就會被升到scope最頂部
05/09 14:06, 2F

05/09 14:07, , 3F
所以大括弧裡的程式執行時a已經宣告了 使用上沒問題
05/09 14:07, 3F

05/09 14:07, , 4F
(只是當{}裡的程式執行完畢後 a的內容會再度被return值
05/09 14:07, 4F

05/09 14:07, , 5F
給覆蓋)
05/09 14:07, 5F
文章代碼(AID): #1JR6-u00 (Ajax)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1JR6-u00 (Ajax)