¿Cuál es la forma correcta de crear una clase de Javascript?

Estoy tratando de averiguar cómo construir mis clases de Javascript (u objetos singleton) correctamente.

var obj = new Object();
obj.foo = 'bar';
obj.method = function() { ...}

var obj = {
    foo : 'bar',
    method : function() { ...}
}

var obj = function(){}
obj.prototype = {
    foo : 'bar',
    method: function() { ... }
}

Quiero poder establecer un par de propiedades y asignar los métodos disponibles. También me gustaría poder usar cosas comomixins en los objetos para que pueda extender estos objetos con cosas comoeventos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta