在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。 js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等
1. for…in循环可以枚举(遍历)出对象本身具有的属性,通过Object.defineProperty()方法加的可枚举属性,或者通过原型对象绑定的可以枚举属性。
2. Object.keys()方法可以枚举对象本身的属性和通过Object.defineProperty()添加的可枚举属性
3. JSON.stringify()方法只能序列化本身的属性和通过Object.defineProperty()添加的可枚举属性为JSON对象