js可枚举属性的遍历

266 阅读1分钟

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

obj._name = 23 //可以直接访问,但是不能被for in 循环,object.keys(),JSON.stringify()访问;

for...in...:可以枚举对象的继承的可枚举属性,兼容ie8;
Object.keys:只能枚举对象本身的属性,最低版本ie9;
Object.getOwnPropertyNames:返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性
但不包括Symbol值作为名称的属性)组成的数组,最低版本ie9;