javascript - Object.create(null) 和 {} 區(qū)別是什么
問題描述
Object.create(null) 和 {} 區(qū)別是什么 看vuex源碼定于對象都是Object.create(null) 為何不直接使用 {}
問題解答
回答1:Object.create(null)沒有繼承任何原型方法,也就是說它的原型鏈沒有上一層。
console.log(Object.create({}).toString); // function toString() { [native code] }console.log(Object.create(null).toString); // undefined回答3:
Object.create()這個方法是用做繼承的,我記得沒錯應(yīng)該是叫函數(shù)式繼承。在js中null是沒有任何屬性和方法的。你繼承了一個null,所以里面沒有任何東西。
回答4:Object.create() 方法使用指定的原型對象和其屬性創(chuàng)建了一個新的對象。
var c=Object.create(null), b= {}, a=Object.create(Object.prototype);console.log(c, b, a);
Object.create(proto, [ propertiesObject ])proto一個對象,應(yīng)該是新創(chuàng)建的對象的原型。propertiesObject可選。該參數(shù)對象是一組屬性與值,該對象的屬性名稱將是新創(chuàng)建的對象的屬性名稱,值是屬性描述符(這些屬性描述符的結(jié)構(gòu)與Object.defineProperties()的第二個參數(shù)一樣)。注意:該參數(shù)對象不能是 undefined,另外只有該對象中自身擁有的可枚舉的屬性才有效,也就是說該對象的原型鏈上屬性是無效的。拋出異常如果 proto 參數(shù)不是 null 或一個對象值,則拋出一個 TypeError 異常。
詳細(xì)解釋
相關(guān)文章:
1. javascript - 回調(diào)函數(shù)和閉包的關(guān)系2. javascript - 在top.jsp點(diǎn)擊退出按鈕后,right.jsp進(jìn)行頁面跳轉(zhuǎn),跳轉(zhuǎn)到login.jsp3. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報(bào)錯,是什么情況?求大神指點(diǎn)4. node.js - koa2 如何獲取參數(shù)?5. javascript - 下面的這段算法代碼求解釋6. css3 - 在sublime text里, 如何讓emmet生成的帶前綴css屬性垂直對齊?7. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?8. javascript - js 有什么優(yōu)雅的辦法實(shí)現(xiàn)在同時打開的兩個標(biāo)簽頁間相互通信?9. java - spring-data Jpa 不需要執(zhí)行save 語句,Set字段就可以自動執(zhí)行保存的方法?求解10. [前端求職必看]前端開發(fā)面試題與答案精選_擴(kuò)展問題
