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迴圈的下一個嗎?