je veux être en mesure de taper map.cube et avoir le retour pt3arraylocation par défaut à moins que je précise ce que je veux en tapant map.cube.poly
par exemple: map.cube serait return [0,0,0] et map.cube.poly renvoient l'objet poly dans le cube objet
Vous ne pouvez pas faire cela en JavaScript.
Cependant, en guise d'alternative, il est intéressant de noter que vous pouvez ajouter des propriétés arbitraires aux tableaux si vous le souhaitez. Ainsi, par exemple:
var map {
cube: [0,0,0],
other: [1,0,0]
};
map.cube.poly = {}; // {} is the same as `new Object()` but not subject to people...
map.other.poly = {}; // ...overriding the `Object` symbol
Alors map.cube
vous donne le tableau, et map.cube.poly
vous donne l'objet que vous avez enregistré sur ce tableau.
Comment est-ce possible? Parce que dans JavaScript, arrays aren't really arrays. Ce ne sont que des objets qui ont une propriété automatique length
, traitent une classe de noms de propriété (tous numériques) d'une manière spéciale, et ont Array.prototype
les sauvegarder. Et bien sûr, vous pouvez ajouter des propriétés à n'importe quel objet.
Il n'y a pas de syntaxe littérale pour ce faire, c'est pourquoi je devais le faire avec des affectations après l'initialiseur d'objet ci-dessus. Mais c'est parfaitement valide. Je l'utilise pour les tableaux à indexation croisée tout le temps.
Assurez-vous, si vous faites cela, que vous n'utilisez pas correctement for..in
; more.
grâce, fonctionne parfaitement –