suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie ist die Ausführungsreihenfolge des Codes, wenn Rekursion und For-Schleife gleichzeitig in js auftreten?

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?

仅有的幸福仅有的幸福2782 Tage vor948

Antworte allen(2)Ich werde antworten

  • 迷茫

    迷茫2017-06-28 09:29:39

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

    Antwort
    0
  • 高洛峰

    高洛峰2017-06-28 09:29:39

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

    Antwort
    0
  • StornierenAntwort