PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Ajax
[問題] js閉包的基礎觀念疑問
作者:
paul09253336
(paulma)
2020-01-05 10:55:19
大家好,小弟剛接觸js不久,目前正在利用網路平台學習,課程正好教到閉包並解釋了基
本原理,講師舉了一個function例子,如下
function greet(word)
{
return function(name){
console.log(word+ ' '+name);
}
}
var sayhi=greet('hi');
sayhi('paul');
在講師的講解中說當程式執行到
var sayhi=greet('hi'); 時
此時js會建立一個execution context,
而word這個變數則會儲存在
function greet的execution context中
當function greet執行完畢,便會離開execution stack
而在一般狀況js會透過garbage collection清除變數內容,但在抽離當下變數還是儲存在
記憶體中,所以之後才能繼續使用到這個變數
但我聽完後有點疑問,目前我的理解是在function執行完畢當下,garbage collection會
執行清除變數內容,所以在function greet執行完,word的這個變數應該就跟著清除了,
但現在看起來並不是這麼一回事,所以想請問js的garbage collection是在什麼時候會執
行?還是是js在遇到閉包時會自動不執行garbage collection?
希望各位高手能夠解答小弟的疑惑
作者:
ccvs
(kisS x Sis)
2020-01-05 13:36:00
http://www.ibm.com/developerworks/library/wa-use-javascr
ipt-closures-efficiently/index.html
作者:
b85040312
(萬年newman)
2020-01-09 15:47:00
因為還用得到 所以不清除
繼續閱讀
[問題] 論壇沒防inject 可以用JS攻擊什麼?
neiltsang
[問題] GAS(GoogleAppScript) + ajax
para123
[問題] 在deploy時遇上websocket的安全問題
crowley
[問題] 請問這段程式碼有錯誤的地方嗎
kyowinner
jquery DataTable新增row問題
caride
[問題] jQuery 一直出現莫名其妙的錯誤
bruce0428
Fw: [精進] [台北] Drone CI讀書會
iamnodoubt
[問題] 滾動視差圖漸進繪出
st1009
[問題] WebSocket 錯誤 404
Muteem
Re: [公告] 版規也要 2.0
emusiclin
Links
booklink
Contact Us: admin [ a t ] ucptt.com