Tout ce qui précède est correct, d'une certaine façon. Javascript utilise deux manières différentes d'accéder aux propriétés/méthodes sur un objet, ou des éléments dans ce qui est effectivement sa version d'un tableau associatif. Comme mentionné par Soubok, ils sont object['propOrMethodName']
et object.propOrMethodName
. Ils sont équivalents.
Même un tableau standard, avec des indices entiers, peut avoir des propriétés/méthodes nommées. Javascript ne fait vraiment aucune distinction dans l'ensemble. Ce que vous ne pouvez pas faire, cependant, est nonArrayObject[n]
ou arrayObject.n
où n est un nombre entier.
Dans le cas de la question, cependant, collection
est explicitement un objet:
var collection = {};
Un tableau, avec des indices entiers, seraient ainsi déclaré:
var collection = [];
Comme les derniers tests de déclaration collection["null"][n]
(en supposant que n est à nouveau un entier), je dirais que la collection est destinée à avoir une série de propriétés, dont chacune est un tableau. L'une de ces propriétés est nommée "null".
dangereuse utilisation du mot "propriété" là. Tout en js est effectivement un hashmap. Oui, il pourrait s'agir d'une "propriété" d'un objet, mais il pourrait aussi s'agir d'un indexeur de tableau –
Dans JS, les index de chaîne sont des propriétés. Les "tableaux" avec des index de chaînes sont en fait des objets. –
"collection.null est équivalent à collection [" null "]." sauf que je ne crois pas collection.null est javascript valide. – Breton