Ventajas de usar prototipos, frente a definir métodos directamente en el constructor? [duplicar

Esta pregunta ya tiene una respuesta aquí:

¿Uso de 'prototipo' vs. 'esto' en JavaScript? 14 respuestas

Me pregunto si hay alguna ventaja de usar cualquiera de estos sobre el otro, ¿y en qué dirección debo ir?

nfoque @Constructor:

var Class = function () {

    this.calc = function (a, b) {
        return a + b;
    };

};

Enfoque de prototipo:

var Class = function () {};

Class.prototype.calc = function (a, b) {
    return a + b;
};

No me gusta eso, usando el prototipo, las definiciones de métodos se separan de la clase, y no sé si hay alguna razón específica por la que deba usar esto solo en el primer enfoque.

Además, ¿hay algún beneficio de usar una función literal para definir una "clase", en lugar de solo la definición de la función:

var Class = function () {};

vs

function Class () {};

¡Gracias