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);
}
关于Javascript 范围问题 - Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3323593/