Diferentes maneiras de criar um objeto em javascript

Usando o construtor Object ():

var d = new Object();

Esta é a maneira mais simples de criar um objeto vazio. Eu acredito que agora está desencorajado.

Usando o método Object.create ():

var a = Object.create(null);

Este método cria um novo objeto estendendo o objeto protótipo passado como parâmetro.

Usando o açúcar sintético do colchete:

var b = {};

Isso é equivalente ao método Object.create (null), usando um protótipo nulo como argumento.

Usando um construtor de função

var Obj = function(name) {
this.name = name
}
var c = new Obj("hello");

O que o novo operador faz é chamar uma função e defini la como um novo objeto, e vincular o protótipo desse novo objeto ao protótipo da função. Como é:

function f {};

new f(a, b, c);

Would be equivalent to:

// Create a new instance using f's prototype.
var newInstance = Object.create(f.prototype)
var result;

// Call the function
result
= f.call(newInstance, a, b, c),

// If the result is a non-null object, use it, otherwise use the new instance.
result
&& typeof result === 'object' ? result : newInstance

Usando a função construtor + protótipo:

function myObj(){};
myObj
.prototype.name = "hello";
var k = new myObj();

Usando a sintaxe da classe ES6:

class myObject  {
constructor(name) {
this.name = name;
}
}
var e = new myObject("hello");

Padrão singleton:

var l = new function(){
this.name = "hello";
}

Respostas relacionadas:

javascript foreach