国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

javascript - js中遞歸與for循環(huán)同時發(fā)生的時候,代碼的執(zhí)行順序是怎樣的?

瀏覽:210日期: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; } 以上代碼是實現(xiàn)對象的深度克隆,當對象的屬性值是一個對象的時候,就遞歸執(zhí)行函數(shù),也就是只想到o[i] = typeof obj[i] === 'object' ? cloneObject(obj[i]) : obj[i]; 的時候,當typeof obj[i] === 'object'成立是,執(zhí)行cloneObject(obj[i]),我不理解的是,當執(zhí)行cloneObject(obj[i])時,再次進入cloneObject函數(shù)執(zhí)行代碼,但是for in 循環(huán)還沒結束啊,那是先執(zhí)行cloneObject完這個,再繼續(xù)for循環(huán)的下一個嗎?

問題解答

回答1:

你的遞歸是在for循環(huán)里面。所以當你進入到for循環(huán)后。是先執(zhí)行遞歸的,直到這個遞歸有結果返回,你才回到for循環(huán)繼續(xù)執(zhí)行。

回答2:

都是同步的,肯定遞歸執(zhí)行完了才進去下一個for循環(huán)

標簽: JavaScript
主站蜘蛛池模板: 儋州市| 唐河县| 石门县| 比如县| 阿尔山市| 阜新| 德清县| 濮阳市| 泗阳县| 普宁市| 阳西县| 延边| 宜良县| 新晃| 岳池县| 师宗县| 维西| 河曲县| 汤原县| 和田县| 津南区| 北京市| 望城县| 鄂尔多斯市| 习水县| 乐清市| 桑日县| 昔阳县| 玉山县| 元阳县| 惠来县| 济宁市| 澎湖县| 海口市| 福州市| 克东县| 麟游县| 郸城县| 奇台县| 蒙阴县| 芦山县|