Wie richte ich JavaScript-Namespace und -Klassen richtig ein?

Es scheint, dass es so viele Möglichkeiten gibt, eine JavaScript-Anwendung einzurichten, dass es verwirrend ist, welche richtig oder am besten ist. Gibt es einen Unterschied zu den folgenden Techniken oder eine bessere Möglichkeit, dies zu tun?

MyNamespace.MyClass = {
    someProperty: 5,
    anotherProperty: false,

    init: function () {
        //do initialization
    },

    someFunction: function () {
        //do something
    }
};

$(function () {
    MyNamespace.MyClass.init();
});

Ein anderer Weg:

MyNamespace.MyClass = (function () {
    var someProperty = 5;
    var anotherProperty = false;

    var init = function () {
        //do something
    };

    var someFunction = function () {
        //do something
    };

    return {
        someProperty: someProperty
        anotherProperty: anotherProperty
        init: init
        someFunction: someFunction
    };
}());

MyNamespace.MyClass.init();

Die erste Technikfühlt sich eher wie eine Klasse. Ich komme aus serverseitigen Hintergrund, wenn dies einen Unterschied macht. Die zweite Technik scheint überflüssiger und etwas umständlich zu sein, aber ich sehe, dass sie auch viel benutzt wird. Kann jemand bitte helfen, Licht ins Dunkel zu bringen und den besten Weg zu finden, um voranzukommen? Ich möchte eine Anwendung mit vielen Klassen erstellen, die miteinander sprechen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage