Si vous n'avez pas le comportement associé à un objet (par exemple, si l'objet est un conteneur de données/de l'état), je voudrais utiliser un objet littéral.
var data = {
foo: 42,
bar: 43
};
Appliquer le principe de BAISER. Si vous n'avez pas besoin de quelque chose au-delà d'un simple conteneur de données, aller avec un simple littérale.
Si vous souhaitez ajouter un comportement à votre objet, vous pouvez aller avec un constructeur et d'ajouter des méthodes à l'objet lors de la construction ou de donner à votre classe un prototype.
function MyData(foo, bar) {
this.foo = foo;
this.bar = bar;
this.verify = function () {
return this.foo === this.bar;
};
}
// or:
MyData.prototype.verify = function () {
return this.foo === this.bar;
};
Une classe comme cela agit également comme un schéma pour votre objet de données: Vous disposez maintenant d'une sorte de contrat (par le constructeur) quelles sont les propriétés de l'objet initialise/contient. Gratuitement un littéral est juste un machin amorphe de données.
Vous pourriez aussi bien avoir un externe verify
fonction qui agit sur un simple vieux données de l'objet:
var data = {
foo: 42,
bar: 43
};
function verify(data) {
return data.foo === data.bar;
}
Cependant, ce n'est pas favorable en ce qui concerne l'encapsulation: Idéalement, toutes les données de comportement associés à une entité doit vivre ensemble.