Maison > Questions et réponses > le corps du texte
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 ?
迷茫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.
高洛峰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