Три разных способа использования функций JavaScript, но я не знаю плюсов и минусов для этого. Может ли кто-нибудь объяснить различия?

У меня есть три способа сделать функцию и вернуть ее. (Может быть, есть еще?), Но я не знаю разницы между ними и когда использовать какой. Может ли кто-нибудь объяснить, пожалуйста.

var test1 = function() {
    var funk1 = function() {
        console.log(1);
    }
    var funk2 = function(msg) {
        console.log(msg);
    }
    return {
        funk1: funk1,
        funk2: funk2
    }
};

var test2 = function() {
    this.funk1 = function() {
        console.log(1);
    }
    this.funk2 = function(msg) {
        console.log(msg);
    }
};

var someThing = test1();
someThing.funk1();
someThing.funk2(2);

var someThing = new test1();
someThing.funk1();
someThing.funk2(2);

var thingElse = new test2();
thingElse.funk1();
thingElse.funk2(2);

Ответы на вопрос(1)

Ваш ответ на вопрос