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]; die Eigenschaften des Objekts Wenn der Wert ein Objekt ist, wird die Funktion rekursiv ausgeführt, d. h. wenn nur o[i] = typeof obj[i] === "object" ? cloneObject(obj[i]) : obj[ i]; wird gedacht, wenn typeof obj[i] === „object“ eingerichtet ist, cloneObject(obj[i]) ausführen, was ich nicht verstehe, ist, dass beim Ausführen von cloneObject(obj[i]) eingegeben wird Die cloneObject-Funktion erneut ausführen, um den Code auszuführen, aber for in. Die Schleife ist noch nicht beendet. Sollen wir zuerst cloneObject ausführen, um dies zu beenden, und dann mit dem nächsten Teil der for-Schleife fortfahren?
你的递归是在for循环里面。所以当你进入到for循环后。是先执行递归的,直到这个递归有结果返回,你才回到for循环继续执行。
都是同步的,肯定递归执行完了才进去下一个for循环