5

少なくとも、この場合に起こると私が思うことは次のとおりです。

function MyFunc() {
    var people = Array({name: 'Alex', age: 25}, {name: 'Ellen', age: 43});
    for (var i=0; i<people.length; i++) {
        setTimeout(function() { ShowIt(people[i].name) }, 1000); // !!!
    }
}

function ShowIt(name) {
    alert(name);
}

このエラーが発生Uncaught TypeError: Cannot read property 'name' of undefinedするため、setTimeoutリスナー関数内でpeople変数にアクセスできないようです。なぜ、どうすれば修正できますか?

4

1 に答える 1