javascript - Wie ist die Ausführungsreihenfolge des Codes, wenn Rekursion und For-Schleife gleichzeitig in js auftreten?
仅有的幸福
仅有的幸福 2017-06-28 09:27:39
0
2
924

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?

仅有的幸福
仅有的幸福

Antworte allen(2)
迷茫

你的递归是在for循环里面。所以当你进入到for循环后。是先执行递归的,直到这个递归有结果返回,你才回到for循环继续执行。

小葫芦

都是同步的,肯定递归执行完了才进去下一个for循环

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage