Question

var something = {

wtf: null,
omg: null
};

Mes connaissances en JavaScript sont encore terriblement inégales depuis ma dernière programmation, mais je pense en avoir réappris la majeure partie maintenant. Sauf pour ça. Je ne me rappelle pas avoir déjà vu cela auparavant. Qu'Est-ce que c'est? Et où puis-je en apprendre plus à ce sujet?

Était-ce utile?

La solution

Il s'agit d'un littéral d'objet avec deux propriétés. C'est généralement ainsi que les utilisateurs créent des tableaux ou des hachages associatifs, car JS ne prend pas en charge cette structure de données de manière native. Notez qu’il s’agit toujours d’un objet à part entière, vous pouvez même ajouter des fonctions en tant que propriétés:

var myobj = {
    name: 'SO',
    hello: function() {
        alert(this.name);
    }
};

Et vous pouvez parcourir les propriétés à l'aide d'une boucle for:

for (i in myobj) {
    // myobj[i]
    // Using the brackets (myobj['name']) is the same as using a dot (myobj.name)
}

Autres conseils

C'est la syntaxe littérale d'objet. 'Wft' et 'omg' sont des noms de propriété, alors que null et null sont les valeurs de la propriété.

Cela équivaut à:

var something = new Object();
something.wtf = null;
something.omg = null;

Consultez la documentation de mozilla sur les littéraux d’objet: http: //developer.mozilla. org / En / Core_JavaScript_1.5_Guide: Literals # Object_Literals

Explication de "Je veux un tableau associatif en Javascript" point de vue (ce qui est dans de nombreux cas utilisé pour les littéraux d'objets)

De " Maîtrise des tableaux Javascript.

Un tableau associatif est un tableau qui utilise une chaîne au lieu d'un nombre comme index.

var normalArray    = [];
    normalArray[1] = 'This is an enumerated array';

    alert(normalArray[1]);   // outputs: This is an enumerated array

var associativeArray           = [];
    associativeArray['person'] = 'John Smith';

    alert(associativeArray['person']); // outputs: John Smith   

Javascript n'a pas et ne supporte pas les tableaux associatifs. Cependant & # 8230; Tous les tableaux en Javascript sont des objets et la syntaxe d'objet de Javascript donne une émulation de base d'un tableau associatif. Pour cette raison, l'exemple de code ci-dessus fonctionnera réellement. Soyez averti que ce n'est pas un tableau réel et qu'il comporte de véritables pièges si vous essayez de l'utiliser. L'élément 'personne' de l'exemple devient une partie des propriétés et méthodes de l'objet Array, tout comme .length, .sort (), .splice () et toutes les autres propriétés et méthodes intégrées.

Vous pouvez parcourir les propriétés d'un objet à l'aide de la boucle suivante & # 8230;

var associativeArray = [];
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";
for (i in associativeArray) { 
   document.writeln(i+':'+associativeArray[i]+', '); 
   // outputs: one:First, two:Second, three:Third
};

Dans l'exemple ci-dessus, associativeArray.length sera égal à zéro car nous n'avons rien mis dans le tableau, mais dans l'objet de associativeArray. associativeArray [0] sera indéfini.

Dans l'exemple ci-dessus, la boucle récupérera également les méthodes, propriétés et prototypes ajoutés au tableau, et pas uniquement vos données. La bibliothèque Prototype pose de nombreux problèmes, car leurs tableaux associatifs se cassent, car Prototype ajoute quelques fonctions Prototype utiles à l'objet Array et, pour les boucles i in x, utilise ces méthodes supplémentaires. C’est le piège de l’utilisation de Array / objects en tant que tableau associatif des pauvres.

Comme dernier exemple, le code précédent fonctionnera que vous ayez défini ou non associativeArray en tant que tableau ([]), objet ({}), expression régulière (//), chaîne ("), ou tout autre objet Javascript.

La ligne du bas est - n'essayez pas d'utiliser des tableaux associatifs, code pour ce qu'ils sont - propriétés d'objet, pas tableaux.

Il s'agit d'un littéral Objet (ou parfois d'un objet Vanilla dans les bibliothèques contenant des classes Hash).

Même chose que:

var o = new Object();
o.wtf = null;
o.omg = null;

Ceci est un littéral d'objet. C'est effectivement équivalent à ce qui suit:

var something = new Object();
something["wtf"] = null;
something["omg"] = null;

Je pense que c'est un objet avec 2 propriétés, WTF et OMG.

vous pourriez dire

something.wtf = "myMessage";
alert(something.wtf);

consultez JSON.ORG

Ce code:

var something = {wtf:null}

A le même effet que:

var something={};
something.wtf=null;

Ou pour une verbosité inutile:

var something=new Object();
something.wtf=null;

Et il est utile de rappeler que la dernière ligne est identique à

something["wtf"]=null;

Vous pouvez donc utiliser:

var myName="wtf";
something[myName]=null;

Ceci est un exemple d'instanciation d'objet JavaScript en ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top