无法理解JavaScript中的闭包是如何工作的

时间:2014-05-29 11:13:05

标签: javascript

for ( var i = 0; i < 5; i++ ) {
    setTimeout(function() {
        alert( i );
    }, i * 100 ); 
}

我从互联网上拿了上面的例子来理解闭包。但我无法理解为什么它会提醒值5次5次。而不是警告1,2 3,4,5 但是可以采用以下方式。有人可以解释原因。我是JavaScript的新手,所以请提供一些精心解答的答案。

var createFunction = function( i ) {
    return function() {
        alert( i );
    };
};

for ( var i = 0; i < 5; i++ ) {
    setTimeout( createFunction( i ), i * 100 );
}

0 个答案:

没有答案