第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript遞歸中的作用域問題?

JavaScript遞歸中的作用域問題?

哈士奇WWW 2019-05-12 11:03:02
在網(wǎng)上看到一個(gè)習(xí)題內(nèi)容如下:functiongetNode(){varoDiv=document.getElementsByClassName('div4')[0];varparent=findNode(oDiv);returnparent;}functionfindNode(el){varrul=el.parentNode;if(!el||document.documentElement===rul||el===document.documentElement){return;}elseif(rul&&rul.className==='div1'){returnrul;}else{returnfindNode(rul);}}vars1=getNode();console.log(s1.className);遞歸找出子節(jié)點(diǎn)最終的父節(jié)點(diǎn)。上邊的代碼可以得出正常的值;但是如果把returnfindNode(rul);中參數(shù)改為returnfindNode(el);就會(huì)報(bào)錯(cuò):超過最大調(diào)用堆棧大小問題:為什么會(huì)出現(xiàn)錯(cuò)誤?
查看完整描述

2 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

在正常執(zhí)行的時(shí)候,el這個(gè)東西是findNode的參數(shù),是當(dāng)前傳遞過來的元素這個(gè)函數(shù)的意義在于,判斷當(dāng)前是否是div1了,如果不是,就去遞歸自己判斷自己的父元素,如果改成el的話,這個(gè)函數(shù)就永遠(yuǎn)遞歸判斷自己了。
遞歸也是要有方向和結(jié)束條件的。"超過最大調(diào)用堆棧大小"實(shí)際上就是函數(shù)發(fā)生無限遞歸了。因?yàn)檫f歸過程中參數(shù)沒有改變
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-12
?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

按照你的寫法,簡(jiǎn)化成下面這樣??闯鰜砹藛??是個(gè)無限循環(huán)!遞歸是有“深度”限制的,超過就會(huì)報(bào)錯(cuò):超過最大調(diào)用堆棧。在V8引擎中,這個(gè)“深度”大小和堆棧以及堆棧幀(保存參數(shù)的局部變量)有關(guān)。
functionfindNode(el){
returnfindNode(el);
}
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-12
  • 2 回答
  • 0 關(guān)注
  • 617 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)