好吧,我完全困惑。我敢肯定,这是一个范围或一个封闭的事情,但可能有人解释为什么jQuery AJAX请求中的变量范围?
$(document).ready(function() {
var test = 0;
var whatev = [1,2,3,4,5];
$.each(whatev, function(i, v) {
test += 1;
});
alert(test);
});
警报“5”和
$(document).ready(function() {
var test = 0;
var whatev = [1,2,3,4,5];
$.each(whatev, function(i, v) {
$.ajax('http://example.com/').done(function(data) {
test += 1;
});
});
alert(test);
});
警报0?为什么$.each
调用中的匿名函数有权访问测试,但ajax调用的匿名函数没有?匿名函数在哪里被定义?
每个等待是采用同步,也就是说Ajax调用是异步 – epascarello
'$阿贾克斯( 'http://example.com/')'是异步的。 –
@epascarello:AHHHH,对......有人没有足够的咖啡。 – Andrew