javascript - Object.create(null) 和 {} 區(qū)別是什么
問(wèn)題描述
Object.create(null) 和 {} 區(qū)別是什么 看vuex源碼定于對(duì)象都是Object.create(null) 為何不直接使用 {}
問(wèn)題解答
回答1:Object.create(null)沒(méi)有繼承任何原型方法,也就是說(shuō)它的原型鏈沒(méi)有上一層。
console.log(Object.create({}).toString); // function toString() { [native code] }console.log(Object.create(null).toString); // undefined回答3:
Object.create()這個(gè)方法是用做繼承的,我記得沒(méi)錯(cuò)應(yīng)該是叫函數(shù)式繼承。在js中null是沒(méi)有任何屬性和方法的。你繼承了一個(gè)null,所以里面沒(méi)有任何東西。
回答4:Object.create() 方法使用指定的原型對(duì)象和其屬性創(chuàng)建了一個(gè)新的對(duì)象。
var c=Object.create(null), b= {}, a=Object.create(Object.prototype);console.log(c, b, a);
Object.create(proto, [ propertiesObject ])proto一個(gè)對(duì)象,應(yīng)該是新創(chuàng)建的對(duì)象的原型。propertiesObject可選。該參數(shù)對(duì)象是一組屬性與值,該對(duì)象的屬性名稱將是新創(chuàng)建的對(duì)象的屬性名稱,值是屬性描述符(這些屬性描述符的結(jié)構(gòu)與Object.defineProperties()的第二個(gè)參數(shù)一樣)。注意:該參數(shù)對(duì)象不能是 undefined,另外只有該對(duì)象中自身?yè)碛械目擅杜e的屬性才有效,也就是說(shuō)該對(duì)象的原型鏈上屬性是無(wú)效的。拋出異常如果 proto 參數(shù)不是 null 或一個(gè)對(duì)象值,則拋出一個(gè) TypeError 異常。
詳細(xì)解釋
相關(guān)文章:
1. javascript - 求助一個(gè)關(guān)于indexedDB的問(wèn)題2. django進(jìn)行數(shù)據(jù)庫(kù)的查詢3. python - pip install出現(xiàn)下面圖中的報(bào)錯(cuò) 什么原因?4. javascript - canvas 可以實(shí)現(xiàn) PS 魔法橡皮擦的功能嗎?5. 我把所有的css代碼放在一個(gè)文件夾之后,邊框就變成這個(gè)樣子了,請(qǐng)問(wèn)怎么解決?6. html5 - 請(qǐng)問(wèn)一下寫(xiě)H5的時(shí)候 你們都是兼容那些手機(jī)7. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法8. 輸入地址報(bào)以下截圖錯(cuò)誤,怎么辦?9. javascript - ie11以下單擊打開(kāi)不了file,雙擊可以。求解?10. node.js - node中MYSQL的異步問(wèn)題
