Vantagens de usar protótipo, versus definir métodos diretamente no construtor? [duplicado

Esta pergunta já tem uma resposta aqui:

Utilização de 'prototype' vs. 'this' em JavaScript? 14 respostas

Estou imaginando se há alguma vantagem em usar alguma dessas opções em relação à outra, e para que lado devo ir?

Abordagem do construtor:

var Class = function () {

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

};

Abordagem do protótipo:

var Class = function () {};

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

Não gosto disso, usando o protótipo, as definições de método são separadas da classe e não sei se existe algum motivo específico para usar isso apenas na primeira abordage

Além disso, existe algum benefício em usar uma função literal para definir uma "classe", em vez de apenas a definição da função:

var Class = function () {};

vs

function Class () {};

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion