在showHidden上的nodejs – util.inspect澄清

在util.inspect函数的nodejs文档中,文档指出:“如果showHidden为true,那么该对象的不可枚举属性也会显示出来。

不可枚举的属性仅仅是指原型吗? 还是有没有其他的非枚举属性,我没有考虑?

链接到相关文档: http : //nodejs.org/docs/v0.4.8/api/util.html#util.inspect

枚举属性和原型属性是无关的。 只是发生在本地对象上的大多数(所有?)原型属性都是不可枚举的。

为了显示原型和实例属性都可以枚举或不可枚举:

您可以使用defineProperty()在您自己的对象上创build非枚举属性:

 var obj = {}; Object.defineProperty(obj, 'a', { value: 1, enumerable: false }); 

另一方面,添加的原型属性(非本地) 默认情况下是可枚举的,即使将它们添加到本机对象的原型:

 Object.prototype.a = 1; var obj = {}; // Will log "a" for (var i in obj) { console.log(i); }