我花了太长时间试图找到下面代码的问题。
事实证明,由于调用了addRoute
的上下文,keys()
没有返回结果对象的键。为了解决这个问题,我不得不使用Object.keys()
,尽管它在JavaScript控制台中没有问题(后来我意识到这是因为上下文)。
我的问题是,为什么我的JavaScript控制台中没有这个节目?我花了很长时间才意识到(我已经裁剪了完整的代码,实际功能要大得多)。
错误,但控制台中没有错误:
Map.prototype.addRoute = function (results) {
var sectionsIDs = keys(results);
}
正确
Map.prototype.addRoute = function (results) {
var sectionsIDs = Object.keys(results);
}
答案 0 :(得分:3)
您的第一个功能使用keys
console API function。
“Command Line API Reference”页面包含警告:
注意:此API仅在控制台本身内可用。您无法从页面上的脚本访问命令行API。
因此,根据设计,keys
函数仅适用于直接在控制台上运行的代码。
如果您在控制台中查看,Chrome会为您提供一个关于keys
功能仅作为控制台功能的小提示:
> keys
function keys(object) { [Command Line API] }