Jaka jest różnica między this.bla a Object.prototype.bla

Powiedzmy, że mam ten kod:

(function(global) {
    function Bar(foo) {
        this.foo = foo;
        return this;
    }

    Bar.prototype.getFoo = function() {
        return this.foo;
    };

    Bar.prototype.setFoo = function(val) {
        return (this.foo = val);
    };
})(this);

Jaka jest różnica między funkcjami tworzeniasetFoo zprototype i robiąc to w ten sposób:

function Bar(foo) {
    this.getFoo = function() {
        return this.foo;
    };
}

Wiem, czym jest prototyp i co to znaczy, po prostu nie mogę zrozumieć, dlaczego niektórzy ludzie przypisują funkcje do prototypu, ponieważ jeśli przypiszę im to, będą one również dostępne za każdym razem, gdy utworzę nową instancję Bar.

questionAnswers(4)

yourAnswerToTheQuestion