`循环中的`jQuery.getJSON()`函数

我有以下代码返回h=30而不是循环内的每个值。

 for (var h = 0; h < 31; h++) { $.getJSON('http://google.com/', function(data) { console.log('line ' + h); } ) }; 

我需要做什么才能获得循环值?

使用IIFE封闭

 for (var h = 0; h < 31; h++) { (function(h) { $.getJSON('http://google.com/', function(data) {...... console.log('line ' + h); }) })(h) }; 

这样,对于该迭代,将保留h的值,而不是在调用getJSON h将其设置为最后一个值