51 votes

Objets expando Javascript

Que sont les objets expando dans les javascripts?

Dans quel but avons-nous besoin de cela? Tout exemple complet sera apprécié

J'ai trouvé 1 article ici Javascript: Le beau-fils roux du développement web

Merci

43voto

David Hedlund Points 66192

Eh bien, en javascript, tout objet est un expando objet. Ce que cela signifie est que, comme l'article le couvre, qu'à chaque fois que vous essayez d'accéder à une propriétéde 1 , il sera automatiquement créé.

var myObj = {}; // completely empty object
myObj.myProp = 'value';

Le moment où vous attribuer myProp d'une valeur, la propriété myProp est créé dynamiquement, même s'il n'existait pas avant. Dans beaucoup d'autres langages tels que C#, ce n'est normalement pas possible (en fait C# a juste permis expando objet d'un soutien, mais c'est à côté du sujet). Pour accéder à une propriété dans une classe normale en C#, vous devez spécifier dans la classe qu'il n'a, en effet, ont cette propriété.

1 Pas tout à fait correcte. Voir npup de commentaire ci-dessous pour des précisions.

10voto

Abhijit Chanda Points 461

Tout sauf les types primitifs (chaîne, nombre, booléen) sont des objets et supportent la structure clé: valeurs. Il est possible d’accéder aux propriétés (clés) et de les définir à l’aide de la notation par points et des crochets.

 var myObj = {};   
myObj.myProp1 = 'value1'; //works, an expando property   
myObj[myProp2] = 'value2'; // works  , an expando property   
myObj[2010]= 'value'; //note the key is number, still works, an expando property??   
myObj.2010 = 'value'; // FAILS. to use dot notation, key must be a string
 

4voto

Freeman Points 1725

JavaScript transforme les éléments avec des identifiants de noms spécifiques en expandos de l'objet DOM renvoyé. C'est expliqué ici .

4voto

Quentin Points 325526

Un article écrit en 2007 qui utilise document.tous (comme le seul moyen d'accéder à des éléments)? C'est un grand drapeau rouge.

Il est juste de s'habiller ", Vous pouvez ajouter des propriétés à un objet" avec des mots à la mode.

Nous devons être en mesure de le faire parce que sinon nous ne serions pas en mesure de stocker des données, et qu'il serait JavaScript, un assez inutile langue.

(Tout ce qui est un tableau? Non, il n'est pas. Et il itère sur un objet sans hasOwnProperty wrapper. Ce n'est pas à l'abri. Il suffit de garder loin de l'article, il est pire qu'inutile)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X