for(var p = 0; p < xmls.length; p++) { var feed = new google.feeds.Feed(xmls[p]); feed.load(function(result) { //code
在上面的代码中,如果我在feed.load函数之外输出p,我会正确地看到p迭代。但是,如果我在函数内部输出p(在我需要访问它的地方),它将保持在2(恰好是数组“xmls”的长度)。我知道这是一个范围问题,但不知道如何解决它。
事先谢谢!
您需要创建一个新的作用域,这意味着一个新的函数。
for(var p = 0; p < xmls.length; p++) { (function(p) { var feed = new google.feeds.Feed(xmls[p]); feed.load(function(result) { // use p }); })(p); }