Object.create(null)

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!