在util.inspect函数的nodejs文档中,文档声明“如果showHidden为true,那么也将显示对象的不可枚举属性。”
非可枚举属性仅涉及原型吗?或者我还没有考虑过其他不可枚举的属性吗?
指向相关文档的链接:http://nodejs.org/docs/v0.4.8/api/util.html#util.inspect
答案 0 :(得分:2)
可枚举属性和原型属性不相关。只是原生对象 上的大多数(全部?)原型属性都是不可枚举的。
要显示原型和实例属性都可以是可枚举的或不可枚举的:
您可以使用defineProperty()
:
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);
}