Array.map中奇怪的Javascript行为

时间:2017-01-02 13:10:01

标签: javascript arrays

考虑以下代码:

var functions = []
for(var i = 0; i < 3; i++) {
    functions.push(function() {
        console.log(i)
    })
}

for(var i = 0; i < 3; i++) {
    functions[i]()
}

//outputs: 
// 1
// 2
// 3


functions.map(function(fn, i) {
    fn()
})

//outputs: 
// 3
// 3
// 3

为什么for循环和array.map之间的输出不同? 函数数组中的每个函数都应输出值3,这是我在Javascript中所期望的典型行为......

0 个答案:

没有答案