Comment mettre en place JavaScript espace de noms et classes correctement?

Il semble il ya tellement de façons de mettre en place un JavaScript de l'application de sorte qu'il est source de confusion quant à ce qui est la bonne ou la meilleure. Existe-il une différence dans les techniques ci-dessous, ou une meilleure façon de faire cela?

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

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

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

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

D'une autre manière:

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

La première technique se sent plus comme une classe. Je viens de côté serveur d'arrière-plan si cela fait une différence. La deuxième technique semble plus redondant et un peu maladroit, mais je vois ce beaucoup trop. Quelqu'un peut-merci de m'éclairer et de conseiller la meilleure façon d'aller de l'avant? Je veux créer une application avec beaucoup de classes de parler les uns aux autres.

  • Ce n'est pas en utilisant la programmation orientée objet JS tellement que l'utilisation du motif de module.
  • Aussi, vous avez implicite que les deux méthodes sont équivalentes, mais la deuxième méthode n'est pas valable. La manière que vous avez déclaré les variables privées est syntaxiquement invalide, vous voulez juste un régulier instruction var.
  • Thx, j'ai fixé la deuxième méthode.
  • Si vous êtes intéressés à en apprendre plus, je vous recommande fortement de Douglas Crockford du Javascript: Les Bonnes Pièces. Il offre non seulement un Javascript approche classique de la programmation orientée objet, mais explique aussi comment le Javascript est plus LISP-comme des pièces peut être utilisé pour créer d'autres structures étonnantes. À partir du sol-up, il explique comment et pourquoi chaque structure qui fonctionne et ce qui fonctionne le mieux. Aussi, vous pouvez être personnellement intéressé à l'apprentissage CoffeeScript, en particulier pour ses construit en la structure de la classe.
InformationsquelleAutor TruMan1 | 2012-07-25