なぜこのコードスニペットは5を出力しますか(範囲チェーンのために期待どおり)?javascriptの 'entity'オブジェクトとfunctionオブジェクトのライフサイクルの違いは何ですか?
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]())
この出力{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])
?なぜ 'エンティティ'オブジェクトがクロージャとは対照的に現在の値を保持していますか?
すごい説明です!それは私の考えを満たす!ありがとう! –