Object.create(null)与{}区别

Object.create() 方法会使用指定的原型对象及其属性去创建一个新的对象

在阅读vue源码时经常会看到var m =Object.create(null)这样的式子,会思考为什么不直接用{},同样创建一个空对象。
直接实例来看看吧

image.png

得到的结果呢?


image.png
如果在里面对象里面添加属性值的话呢?
image.png

结果


image.png

在上面,我们可以看到,直接用 var m = {}的情况下,虽然我们得到的也是{},但是他会继承对象的各种内置属性,包括各种处理对象的方法,而如果直接用Object.create(null)得到的{},就只是一个空对象,并没有继承对象的基本属性。

这样的好处是什么呢?

在vue组件中我们经常会需要自己动态添加属性,这样做的好处在于避免了自加属性与默认属性的重名,除去了不必要的属性,显得较为轻便。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,178评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 十一点四十广播站又准时的响起了校歌…… 又到了每天的饭时会谈。小舞提到有关于“520节日”的问题,我先“嗯”了一声...
    二蛋家的春花阅读 279评论 0 0
  • 西荒城内,无数道目光望着天空上的对峙,虽然牧尘这般三人占据了人数的优势,不过任谁都看得出来,真正的上风,依旧还是被...
    混沌天书阅读 106评论 0 0