久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

javascript - js中遞歸與for循環同時發生的時候,代碼的執行順序是怎樣的?

瀏覽:207日期:2023-05-02 14:36:50

問題描述

function cloneObject(obj){ var o = obj.constructor === Array ? [] : {}; for(var i in obj){ if(obj.hasOwnProperty(i)){ o[i] = typeof obj[i] === 'object' ? cloneObject(obj[i]) : obj[i]; } } return o; } 以上代碼是實現對象的深度克隆,當對象的屬性值是一個對象的時候,就遞歸執行函數,也就是只想到o[i] = typeof obj[i] === 'object' ? cloneObject(obj[i]) : obj[i]; 的時候,當typeof obj[i] === 'object'成立是,執行cloneObject(obj[i]),我不理解的是,當執行cloneObject(obj[i])時,再次進入cloneObject函數執行代碼,但是for in 循環還沒結束啊,那是先執行cloneObject完這個,再繼續for循環的下一個嗎?

問題解答

回答1:

你的遞歸是在for循環里面。所以當你進入到for循環后。是先執行遞歸的,直到這個遞歸有結果返回,你才回到for循環繼續執行。

回答2:

都是同步的,肯定遞歸執行完了才進去下一個for循環

標簽: JavaScript
主站蜘蛛池模板: 徐州市| 土默特右旗| 阿拉善右旗| 浙江省| 平泉县| 泽库县| 耿马| 台南县| 冕宁县| 新田县| 淅川县| 克什克腾旗| 布尔津县| 紫云| 贞丰县| 双流县| 肃北| 海安县| 秭归县| 铜鼓县| 金阳县| 南涧| 隆化县| 克什克腾旗| 南阳市| 天峨县| 白河县| 怀柔区| 贡觉县| 津南区| 永善县| 龙里县| 南通市| 册亨县| 尤溪县| 罗城| 萨迦县| 永安市| 马龙县| 乡宁县| 浪卡子县|