在Chrome Developer Tools Console中使用console.dir时,淡化属性的重要性是什么

Ben*_*Ben 31 javascript debugging google-chrome object

当在chrome的控制台中使用console.dir()时,对象的属性稍微褪色是什么意思.

例如,在此屏幕截图中查看"top,width,worldVisible,x&y".

开发人员工具截图

我在这里查看了API参考https://developer.chrome.com/devtools/docs/console-api#consoledirobject,但没有运气.

谢谢

aps*_*ers 39

淡化属性apper表示不可枚举的属性.如果我们这样做:

var a = {};
Object.defineProperties(a, {
    hello: { enumerable: false },
    world: { enumerable: true }
});
console.dir(a);
Run Code Online (Sandbox Code Playgroud)

然后我们看到它hello已经褪色,而world不是.

控制台图像显示淡出的<code>for(prop in obj) { console.log(prop); }</code>(<code>obj</code>您在控制台屏幕截图中显示的任何对象在哪里),您将看到只有枚举的属性不会被枚举.</p>

<p>你也可以用<code>Object.getOwnPropertyDescriptor(obj, 它来检查,它应该返回一个带有enumerable: false属性的对象.

请注意,属性名称上的斜体表示属性值由getter函数定义.(这也会导致(...)值在函数运行之前显示一个值.)这是一个完全独立的可枚举问题,导致名称褪色.您可以使用不是褪色的非可枚举属性的斜体getter定义属性,反之亦然.