[[enumerable]]与for-in、Object.keys()、JSON.stringify()辨析

  高程第三版中谈到 enumerable特性时说为false时不能使用for-in遍历,想起自己常用的还有Object.keys()遍历,心中起了疑惑,实例如下

var p1={name:'名字};
for(var key in p1){
  console.log(key)          //"name"
}
Object.defineProperty(p1,'name',{enumerable:false})
for(var key in p1){
  console.log(key)           //无输出
}
console.log(Object.keys(p1))   //[]
console.log(JSON.stringify(p1))   //"{}"

  enumerable为false时,实际上 for-in、Object.keys()就连JSON.stringify都无法遍历到该属性;
  备注:JSON.stringify()用于遍历对象学习自# js对象中什么是可枚举性(enumerable)?

你可能感兴趣的:([[enumerable]]与for-in、Object.keys()、JSON.stringify()辨析)