Existem duas maneiras diferentes de criar um objeto vazio no JavaScript:
var objectA = {}
var objectB = new Object()
Existe alguma diferença em como o mecanismo de script lida com eles? Existe algum motivo para usar um sobre o outro?
Da mesma forma, também é possível criar uma matriz vazia usando sintaxe diferente:
var arrayA = []
var arrayB = new Array()
var objectA = {} var objectB = new Object()
existe uma terceira construção que irá produzir o mesmo resultado:var objectC = Object.create(Object.prototype);
new Object()
e {}
não são objetos completamente vazios, são objetos que possuem o Object.prototype. Você pode usar Object.create(null)
para um objeto realmente vazio (pelo menos de acordo com os docs Mozilla: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... )