美文网首页
Object.create(null)与{}区别

Object.create(null)与{}区别

作者: 海娩 | 来源:发表于2017-12-03 21:03 被阅读0次

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

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

    image.png

    得到的结果呢?


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

    结果


    image.png

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

    这样的好处是什么呢?

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

    相关文章

      网友评论

          本文标题:Object.create(null)与{}区别

          本文链接:https://www.haomeiwen.com/subject/eztobxtx.html