recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Lorsque la récursion et la boucle for se produisent simultanément dans js, quel est l'ordre d'exécution du code?

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;
Le code ci-dessus sert à implémenter le clonage profond de l'objet. les propriétés de l'objet Lorsque la valeur est un objet, la fonction est exécutée de manière récursive, c'est-à-dire lorsque seulement o[i] = typeof obj[i] === "object" ? i]; est pensé, lorsque typeof obj[i] === "object" est établi, exécutez cloneObject(obj[i]), ce que je ne comprends pas, c'est que lors de l'exécution de cloneObject(obj[i]), entrez la fonction cloneObject à nouveau pour exécuter le code, mais for in La boucle n'est pas encore terminée. Devons-nous d'abord exécuter cloneObject pour terminer cela, puis continuer avec la partie suivante de la boucle for ?

仅有的幸福仅有的幸福2782 Il y a quelques jours947

répondre à tous(2)je répondrai

  • 迷茫

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

    Votre récursivité est à l'intérieur de la boucle for. Ainsi, lorsque vous entrez dans la boucle for. La récursion est exécutée en premier, et jusqu'à ce qu'elle renvoie un résultat, vous revenez à la boucle for pour continuer l'exécution.

    répondre
    0
  • 高洛峰

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

    Ils sont tous synchrones. L'exécution récursive doit être terminée avant d'entrer dans la boucle for suivante

    répondre
    0
  • Annulerrépondre