Object.create() 方法會使用指定的原型對象及其屬性去創(chuàng)建一個新的對象
在閱讀vue源碼時經常會看到var m =Object.create(null)
這樣的式子,會思考為什么不直接用{}
,同樣創(chuàng)建一個空對象。
直接實例來看看吧
image.png
得到的結果呢?
image.png
如果在里面對象里面添加屬性值的話呢励堡?
image.png
結果
image.png
在上面届垫,我們可以看到棚唆,直接用 var m = {}
的情況下恋拷,雖然我們得到的也是{}
,但是他會繼承對象的各種內置屬性泄朴,包括各種處理對象的方法重抖,而如果直接用Object.create(null)
得到的{}
,就只是一個空對象祖灰,并沒有繼承對象的基本屬性钟沛。
這樣的好處是什么呢?
在vue組件中我們經常會需要自己動態(tài)添加屬性局扶,這樣做的好處在于避免了自加屬性與默認屬性的重名恨统,除去了不必要的屬性,顯得較為輕便三妈。