Javascript 范围问题 - Chrome 扩展

标签 javascript scope google-chrome-extension

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/

相关文章:

javascript - 使用带有 javascript 的纯 html 还是使用 Canvas ,哪一个更好?

javascript - 异步意外标识符

javascript - Chrome 不允许向允许的域发出 Ajax 请求

javascript - chrome事件选项卡url传递到php文件

javascript - 为什么这段代码 jquery 不起作用?

javascript - 在桌面上模拟加速度计 (Javascript)

perl - 全局变量在子程序中重置自身

javascript - JavaScript 范围内 if(true) 的奇怪行为..?

haskell - 不在范围 'foldrl' 内

javascript - 在 gmail 撰写邮件区域中获取选定/突出显示的文本 html