作者leochen0818 (米拔)
看板Ajax
标题Re: [问题] 关於jQuery
时间Fri May 9 14:03:33 2014
各位前辈们早安、午安、晚安。
小弟又来打扰各位了!!
承蒙各位前辈们不吝指教,
小弟已经对於此种匿名函式有个初步的了解,
感谢各位前辈!!
这次小弟想要问的是,
关於这种匿名函式,也就是:
(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://webptt.com/cn.aspx?n=bbs/Ajax/M.1399615416.A.000.html
1F:推 mrbigmouth:第一个问题 会 Javascript的传递物件都是传址 05/09 14:06
2F:→ mrbigmouth:第二个问题 所有var动作本来就会被升到scope最顶部 05/09 14:06
3F:→ mrbigmouth:所以大括弧里的程式执行时a已经宣告了 使用上没问题 05/09 14:07
4F:→ mrbigmouth:(只是当{}里的程式执行完毕後 a的内容会再度被return值 05/09 14:07
5F:→ mrbigmouth:给覆盖) 05/09 14:07