3 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
再來說一下你的程序發(fā)生無限遞歸的原因:
ajQuery 是一個(gè)函數(shù)。執(zhí)行這個(gè)函數(shù)時(shí),函數(shù)中的 return 語句會(huì)返回一個(gè)值。
它會(huì)返回什么值呢?
返回值是執(zhí)行一個(gè)新的 ajQuery 函數(shù)的返回值,
那么這個(gè)新的 ajQuery 函數(shù)會(huì)返回什么值呢?
這個(gè)新的 ajQuery 函數(shù)會(huì)返回又一個(gè)新的 ajQuery 函數(shù)的返回值,
……
這是無限遞歸,也是一種死循環(huán)。
最后說一下發(fā)生溢出的原因:
每次執(zhí)行 ajQuery 函數(shù),
都會(huì)在結(jié)束前執(zhí)行又一個(gè)新的 ajQuery 函數(shù),
并等待它結(jié)束,然后自身才能結(jié)束。
每執(zhí)行一個(gè)函數(shù)都要占用一些資源,只有函數(shù)結(jié)束后才有可能釋放這些資源。
可是,在無限遞歸過程中,不斷地執(zhí)行一個(gè)又一個(gè)函數(shù),卻從不結(jié)束這些函數(shù)。
所以,占用的資源就會(huì)越來越多。
直到占用的資源超出了允許的范圍,就溢出了!
- 3 回答
- 0 關(guān)注
- 689 瀏覽
添加回答
舉報(bào)