0

我正在导航一个包含对象数组的对象。

当我使用 chrome 的 js 开发者控制台时,我可以从数组的第一项中获取 title 属性,即

hello.example.array[0].title

这将返回标题(仅在 js 开发者控制台中)。但是,当我为我编写一个脚本来执行此操作时,我突然收到了以下回复:

Cannot read property 'array' of undefined

这是我的js的一个例子

var theTitle = hello.example.array[0].title;
console.log(theTitle);

为什么我的js没有,控制台能正确找到?

4

2 回答 2

0

尝试在脚本视图中选择有问题的表达式,然后使用Ctrl-Shift-E快捷方式在控制台中进行评估。或者,从脚本视图复制并粘贴到控制台中。或者,将鼠标悬停在脚本视图中表达式的最后一个组件上以查看值。在任何一种情况下,您很可能会发现您输入了错误的内容,或者在与您在控制台中评估表达式的上下文不同的上下文中执行脚本,等等。

于 2013-02-25T18:08:41.630 回答
0

感谢@Barmar,我意识到我需要查看我是如何获取“title”属性的。

我的解决方案是在其他代码的上下文中,以及最初是如何创建对象的。

感谢大家的帮助!


6 年后编辑: 这篇文章很受欢迎,所以我想我会用更有效的答案更新它......

  1. 确保您的 JavaScript 实际上具有对象的范围/上下文。

  2. JS 控制台能够返回它,因为它是在代码运行后执行的。而有问题的 JavaScript 可能会在设置变量之前尝试访问它。

因此,请检查您是否具有正确的范围/上下文,并且代码在设置变量之前没有尝试访问它。

于 2013-02-25T18:47:38.280 回答