摘要:當你想用對象作為一個映射完全用來儲存數據,你應該按如下方式來創建它。當創建一個映射使用對象字面量時默認情況下,這個映射從這個對象繼承屬性。但是通過我們明確指定作為它的屬性。標注如果你僅僅是想要用對象保存數據,建議這種方式
當你想用javascript對象作為一個hash映射(完全用來儲存數據),你應該按如下方式來創建它。
const map = Object.create(null);
當創建一個映射使用對象字面量時(const map = {}),默認情況下,這個映射從這個對象繼承屬性。這和 Object.creatd(Object.prototype)創建時相等的。但是通過 Object.create(null),我們明確指定 null 作為它的屬性。因此它相當于沒有屬相,甚至沒有constructor, toString, hasOwnProperty等方法。因此你可以隨意使用這些鍵值在你的數據結構中,只要你需要。
const dirtyMap = {}; const cleanMap = Object.create(null); dirtyMap.constructor // function Object() { [native code] } cleanMap.constructor // undefined // Iterating maps const key; for(key in dirtyMap){ if (dirtyMap.hasOwnProperty(key)) { // Check to avoid iterating over inherited properties. console.log(key + " -> " + dirtyMap[key]); } } for(key in cleanMap){ console.log(key + " -> " + cleanMap[key]); // No need to add extra checks, as the object will always be clean }
標注:如果你僅僅是想要用對象保存數據,建議這種方式:
const map = Object.create(null)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95619.html
摘要:這個屬性本身又是一個類型的對象,原型對象都包含一個指向構造函數的指針,而每一個實例也都包含一個指向原型對象內部的指針。 前陣子忙于準備CET-6,沒時間更新文章,之后大概一個月將忙于準備期末考,也應該不會更新了,今天趁周末有時間再更新一篇最近研究的一些東西吧。 callee和caller function inner(){ console.log(arguments.calle...
摘要:最近在讀語言精粹這本書,作者是是一名來自的資深架構師,以創建和維護格式而為大家所熟知。三元運算符有三個運算數。嘗試從的成員屬性中取值將會導致異常。這個過程稱為委托。通過可取得它們所屬對象的上下文的方法稱為公共方法。 最近在讀《JavaScript語言精粹》這本書,作者是 Douglas Crockford;Douglas Crockford是一名來自 Yahoo!的資深JavaScri...
摘要:然而,對象字面量不是真正意義上的哈希映射,如果使用不當可能會構成潛在的隱患。空對象創建一個真正的哈希映射的秘訣就是避免原型,及其帶來的包袱。在此之前,甚至之后,你應該使用空對象滿足你所有的基本哈希映射需求。 在JavaScript中存儲鍵值對的一個簡單常見的方法是使用對象字面量。然而,對象字面量不是真正意義上的哈希映射,如果使用不當可能會構成潛在的隱患。雖然目前JavaScrip...
摘要:的簡單數據類型包括數字字符串布爾值值和值。數字字符串和布爾值貌似貌似對象,因為他們擁有放飛,但他們是不可變的。對象字面量對象字面量提供一種非常方便創建新對象值的表示法。所有通過對象字面量創建的對象都連接到它是中的標配對象。 javascript 的簡單數據類型包括數字、字符串、布爾值、null值和undefined值。其他所有的值都是對象。數字、字符串和布爾值貌似貌似對象,因為他們擁有...
閱讀 1032·2021-11-23 09:51
閱讀 2356·2021-10-08 10:22
閱讀 2637·2021-09-29 09:35
閱讀 866·2021-09-22 15:20
閱讀 2869·2019-08-30 15:53
閱讀 2419·2019-08-30 13:55
閱讀 1108·2019-08-29 17:27
閱讀 2876·2019-08-29 17:26