我有一个包含各种社交指标的共享计数的对象。该对象如下所示:
Object{
delicious: 0,
facebook: {
comments: 0,
likes: 0,
shares: 0,
total: 0,
},
linkedIn: 1,
pinterest: 0,
twitter: 9
}
这是我用来尝试访问我的对象的一些测试代码:
console.log(bg.results);
console.log(bg.results["facebook"]);
console.log(bg.results.facebook);
Object.keys(bg.results).forEach(function(key){
console.log(bg.results);
console.log(key + "->" + bg.results[key]);
});
上面的对象是我在控制台中看到的,所以我知道 bg.results 中的字段包含数据。问题是,当我尝试使用点语法或使用 object["key"] 访问这些字段中的任何一个时,我得到一个空字符串作为结果。我搜索并找不到其他遇到同样问题的人。有谁知道为什么会发生这种情况?
一些附加信息:我的代码正在 chrome 扩展的上下文中运行。我正在从弹出页面访问该对象,并且该对象的数据是从我的背景页面提供的。
谢谢您的帮助。
更新
Chrome 处理我的代码的方式发生了一些有趣的事情。bg.results 中的数据由我的后台页面上的一个名为 update 的函数提供。在我的程序中,根据用户的设置,有两种调用更新的方法。当从我的背景页面的上下文中调用 update() 时,一切正常并按预期运行。当从我的弹出页面调用 update() 时,当我尝试访问任何字段时会得到空字符串。
这似乎是一个对于如何处理 chrome 扩展非常特殊的错误,因此专家在这类事情上的任何输入都会很棒。感谢大家的帮助!