Jednou z nejzábavnějších částí JavaScriptu nebo jakéhokoli programovacího jazyka je to, že existuje spousta drobných triků a vtipů, díky nimž je jazyk mnohem zajímavější. Nedávno jsem se dozvěděl pěkný fakt o Object.create
: pomocí null
jako jediný argument pro vytvoření ultravanilkového slovníku!
Object.create
byl úžasný nástroj pro tvorbu prototypů. I když je to hezké, objekty vytvořené pomocí Object.create
mít __proto__
a zdědil Object
vlastnosti, se kterými lze manipulovat. Co když prostě chcete slovník, který není náchylný k manipulaci zvenčí? Můžete to mít s Object.create(null)
:
let dict = Object.create(null); // dict.__proto__ === "undefined" // No object properties exist until you add them
Vzhledem k tomu, že neexistuje žádný prototyp, s vaším objektem nelze manipulovat zvenčí – zůstává tak vanilkou slovníku, jak je to jen možné! Porovnejte to s Object.create({})
:
let obj = Object.create({}); // obj.__proto__ === {} // obj.hasOwnProperty === function Object.prototype.someFunction = () => {}; // obj.someFunction === () => {}; // dict.someFunction === undefined
Absolvování Object.create
prázdný objekt umožňuje přidání vlastností pomocí Object.prototype.customPropName
, něco, co možná ne vždy chcete.
Až donedávna jsem o tomto triku nevěděl, ale v budoucnu ho budu používat!