Object.create (null)

Às vezes, quando você deseja usar um objeto JavaScript como um mapa hash (exclusivamente para armazenar dados), você pode querer criá-lo:

var data = Object.create(null);

A diferença do simples var data = {}é que você obteria um objeto “limpo” que não herda de nada (ou seja, sem protótipo). O efeito? Ela terá absolutamente nenhum propriedades , nem mesmo constructor, toString, hasOwnProperty, etc. assim que você é livre para usar essas chaves em sua estrutura de dados se você precisa.

Exemplo

var map1 = {},
map2
= Object.create(null);

map1
.constructor
// function Object() { [native code] }
map2
.constructor
// undefined

Claro que você não deveria usar palavras-chave reservadas em seu código, mas e se você precisar construir um mapa de elementos com chaves arbitrárias que são inseridas pelo usuário ou vêm de uma API de terceiros? É aí que Object.create(null)pode ajudar!

Notas

Referências: