首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Chrome DevTools -为什么变量显示在DevTools中,而不在作用域中?

Chrome DevTools -为什么变量显示在DevTools中,而不在作用域中?
EN

Stack Overflow用户
提问于 2021-10-30 01:47:20
回答 1查看 28关注 0票数 0

我在Chrome v95中调试一个AngularJS应用程序,在一个JavaScript文件的断点处暂停。

在“监视”面板中,我为"scope.currentScreenId“添加了一个条目,它显示了该变量的值。

但是当我展开"Scope“面板中的项时,我找不到那个currentScreenId变量。它不是一个局部变量,所以不会出现在" local“下。在“全局”下,我可以找到"scope“对象,但当我展开它时,它只显示了它下面的13个对象,不包括"currentScreenId”。最后显示的对象是"[Prototype]:Scope“。

当我在"scope“变量上添加一个Watch时,它同样只显示了它下面的13个对象。为什么像"currentScreenId“这样的子对象看起来是隐藏的,我如何浏览这些隐藏的对象?

如果我转到控制台并输入"scope.",自动完成弹出窗口会显示更多的子变量,包括currentScreenId。此列表是我希望在源代码页面的范围和/或监视部分中看到的内容。弹出窗口中显示的前12个项目与范围面板中显示的项目相匹配。为什么其他的不在那里显示呢?

在微软边缘浏览器v95中,它的工作原理与Chrome相同,只是在"scope“下显示了12个子对象,而不是13个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-30 02:45:56

展开[[Prototype]]: Scope,您将看到parent作用域属性--您应该在parent或parent的parent中找到您的属性。

这不是纯Angularjs特性--您可以在JS控制台中尝试以下代码:

代码语言:javascript
运行
复制
a = {test1: 'test1'}
b = {test2: 'test2', __proto__: a}

b >> {test2: "test2", [[Prototype]]: Object}
b.test1 >> 'test1'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69776221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档