javascript - Lorsque la récursion et la boucle for se produisent simultanément dans js, quel est l'ordre d'exécution du code?
仅有的幸福
仅有的幸福 2017-06-28 09:27:39
0
2
954

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 ?

仅有的幸福
仅有的幸福

répondre à tous(2)
迷茫

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.

小葫芦

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal