脚本不能在JavaScript Chrome控制台中打印错误

时间:2016-10-18 16:40:21

标签: javascript

我花了太长时间试图找到下面代码的问题。

事实证明,由于调用了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);
}

1 个答案:

答案 0 :(得分:3)

您的第一个功能使用keys console API function

Command Line API Reference”页面包含警告:

  

注意:此API仅在控制台本身内可用。您无法从页面上的脚本访问命令行API。

因此,根据设计,keys函数仅适用于直接在控制台上运行的代码。

如果您在控制台中查看,Chrome会为您提供一个关于keys功能仅作为控制台功能的小提示:

 > keys  
 function keys(object) { [Command Line API] }