Pourquoi cet extrait de code génère-t-il 5 (comme attendu en raison de la chaîne de portées)?Quelle est la différence de cycle de vie entre l'objet 'entity' et l'objet fonction en javascript?
let arr = []
var firstFunc;
for(var i = 0; i < 5; i++) {
var iterFunc = function() {
return function() {
return i
}
}
arr.push(iterFunc())
}
console.log(arr[0]())
mais cette sortie {a: 0}:
let arr = []
var firstFunc;
for(var i = 0; i < 5; i++) {
var iterFunc = function() {
return {
a: i
}
}
arr.push(iterFunc())
}
console.log(arr[0])
quelle logique l'allocation mémoire se produit sous le capot? Pourquoi l'objet 'entity' persiste-t-il par rapport à la fermeture?
super explication! ça rencontre mes pensées! Merci! –