JavaScript 属性的可枚举性
可枚举性即可以出现在对象属性的遍历中:for..in 任何可以通过原型链访问到的属性都会被枚举到。
propertyIsEnumerable(..)可以检查给定的属性名是否存在于对象中(非原型链上)且 enumerable:true
Object.keys(..)返回对象中所有可枚举的属性数组
Object.getOwnPropertyNames(..)返回所有属性的数组,无论是否可枚举
注意
Object.keys(..)和Object.getOwnPropertyNames(..)都只会查找对象直接包含的属性(非原型链上)
var obj={a:1}; Object.defineProperty( obj, "b", { enumerable:false, value:3 } ); for(var k in obj){ console.log(k,obj[k]); //输出 a 1 }