[[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)?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6允...
    呼呼哥阅读 3,073评论 0赞 2
  • 此文章用于归纳Object的所有方法 在JavaScript中,object是所有对象的基础(原型链的顶端),所以...
    moonburn阅读 770评论 0赞 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,348评论 19赞 139
  • 概述 JavaScript提供了一个内部数据结构,用来描述一个对象的属性的行为,控制它的行为。这被称为“属性描述对...
    zjh111阅读 816评论 0赞 0
  • You Don't Know JS: this & Object Prototypes Chapter 3: Ob...
    大橙子CZ阅读 723评论 0赞 1

友情链接更多精彩内容