You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何部分JSON属性仅在展开视图显示?如何访问这类属性?

为什么部分JSON属性仅在展开视图显示?

常见原因

  • 控制台的默认优化:浏览器或调试工具的控制台为了避免折叠视图信息过载,默认只展示对象的自有可枚举属性。那些继承自原型链的属性、不可枚举属性,或者被判定为“非核心”的内置方法,会被隐藏到展开视图中。
  • 属性特性限制:
    • 不可枚举属性:通过Object.defineProperty定义时设置了enumerable: false的属性,默认不会在折叠视图显示,必须展开才能看到。
    • 原型链属性:对象从原型继承来的属性(比如数组的map、filter方法),控制台默认不会在折叠视图展示,展开后会出现在__proto__或原型链区域。
  • 大型对象的懒加载:如果对象体积较大,控制台会先渲染核心属性,展开时才遍历所有属性,提升界面渲染速度。

如何访问展开视图中的属性?

完全可以访问,常用方法如下:

  • 直接通过属性名调用:只要知道属性名称,不管它在不在折叠视图显示,都可以用obj.propertyName或obj['propertyName']直接获取。比如原型链上的toString方法,直接用obj.toString()就能调用。
  • 遍历所有属性:
    • Object.getOwnPropertyNames(obj):获取对象的所有自有属性(包含不可枚举属性)。
    • Reflect.ownKeys(obj):获取对象的所有自有属性(包含Symbol类型的属性)。
    • for...in循环:可以遍历对象自身及原型链上的可枚举属性,配合obj.hasOwnProperty(key)可筛选出自有属性。
  • 调整控制台设置:部分浏览器控制台(如Chrome)可以在设置里勾选“Show all properties”,让折叠视图也展示更多属性类型。

内容的提问来源于stack exchange,提问作者Brandon Bell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:50:19