7
votes

Création d'objet personnalisé JavaScript

J'ai créé une page ashx qui va me servir un document XML rempli d'informations de base de l'utilisateur. Je ne suis pas sûr qui est le meilleur moyen de créer et de remplir mon objet JavaScript personnalisé. Je les ai vus créés de deux manières: xxx

et xxx

Je pourrais peupler chacun de ceux-ci en faisant quelque chose comme: xxx

est une méthode de création de l'objet meilleur que l'autre?

edit : une année et demi plus tard j'ai vu ça Cette question a obtenu le badge populaire, alors je voulais juste mentionner qu'aujourd'hui, j'utilise modèle de module .


0 commentaires

3 Réponses :


1
votes

Le premier est un objet typique, connu de OOP. Vous pouvez ajouter des fonctions à agir sur les attributs tels que celui-ci (en supposant qu'il existe une fonction getfulname): xxx

Le second est juste un tableau associatif, dans lequel les chaînes sont mappées sur des valeurs.

en JavaScript La frontière entre les deux n'est pas aussi stricte que dans les langages de programmation ohter.


1 commentaires

Ce n'est pas un tableau associatif, c'est un objet littéral



9
votes

Vous ne pouvez pas accéder aux propriétés du premier objet sans instanciation, c'est-à-dire à l'aide du mot-clé Nouveau : xxx

Le deuxième objet est un littéral objet accessible sans instanciation sans instanciation. Il est déjà instancié lorsqu'il est analysé.

La différence entre en jeu si vous souhaitez utiliser héritage prototypique pour créer un nouvel objet sur la base de l'ancien. Écrire un objet Littéral est probablement plus facile à comprendre et plus le modèle plus approprié si vous avez une base de code plutôt compacte. Cependant, le prototypage est utile si vous souhaitez créer un nouvel objet en augmentant un objet existant avec un autre objet sans avoir à réécrire l'objet d'être augmenté: xxx

dans votre cas La différence peut ne pas sembler frappante, mais vous devez imaginer à quel point le code redondant vous obtiendrait si vous créez un autre objet littéral pour chaque ajout maigre à l'objet d'origine.

Regarde dans le centre de développeur Mozilla Developer page sur des objets JavaScript Si vous avez des questions supplémentaires, il est très bien décrit: https://developer.mozilla.org/fr/core_javascript_1.5_reference :global_Objects:Object .

hth


0 commentaires

8
votes

Vous n'avez pas besoin de créer d'abord un objet avec des valeurs vides. JavaScript n'a pas besoin de placer des supports et peut ajouter des propriétés et des méthodes de manière dynamique à tout moment. C'est-à-dire que cela suffirait également:

function createUser(id, firstname, lastname, title) {
    return {
        Id: id,
        FirstName: firstname,
        LastName: lastname,
        Title: title
    };
}
var User2 = createUser(1, 'John', 'Smith', 'Manager');


0 commentaires