Was ist der Unterschied zwischen this.bla und Object.prototype.bla?

Angenommen, ich habe diesen Code:

(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);

Was ist der Unterschied zwischen dem Erstellen von Funktionen?setFoo mitprototype und mach es einfach so:

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

Ich weiß, was ein Prototyp ist und was es bedeutet, ich kann nur nicht herausfinden, warum manche Leute Funktionen mit einem Prototyp zuweisen, denn wenn ich ihnen diese zuweisen, sind sie auch jedes Mal verfügbar, wenn ich eine neue Instanz von Bar erstelle.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage