为什么chrome控制台中window对象有些属性显示成浅紫色,有些是深紫色的

打开console,输入window,打开看发现前面的属性是深紫色的比如常用的document,location,后面有一些对象是浅紫色的,比如Array对象和一堆SVG,HTML,CSS开头的对象,常用的prototype和__proto__也是浅紫色的。

请问这里深紫和浅紫的区别是什么呢,隐藏属性?
我自己尝试构造了一些对象,并不能达到这种效果。

我在StackOverflow上找到一个回答,说是浅紫色的是由于enumerable的区别
https://stackoverflow.com/que...

但是window.chrome的webstore属性是浅紫的,但是

>>>window.chrome.propertyIsEnumerable('webstore')
true
阅读 5.7k
3 个回答

解决了,淡灰色有两种可能,还有一种原因是invoke property getter

86e7325439c89f69e58edf09dd7392d.png
如图所示,obj对象深颜色属性表示可枚举属性,obj对象浅颜色属性表示不可以枚举。
可枚举属性:可以通过for...in...遍历的属性,自己给对象添加的属性可以遍历,而原型上的属性一般不可以遍历。
不可枚举属性:不能通过for...in...遍历的属性。
如何判断一个属性是否为可枚举属性?
4484e9c9411afb48e018f2f912c2034.png
如图所示,返回的是true表示这个属性是可枚举的,false表示不可以枚举。

新手上路,请多包涵

楼主说的>>window.chrome.propertyIsEnumerable('webstore')是true,
但是我这边运行是false
PixPin_2024-12-10_10-53-46.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题