12 votes

Pourquoi les objets de type tableau sont utilisés en Javascript plutôt que les tableaux natifs ?

Il est très courant en Javascript de rencontrer des objets Array-Like présentant certaines similitudes avec le type Array intégré, mais sans toutes ses méthodes ou fonctionnalités. À tel point qu'il existe des astuces pour convertir les objets Array-Like en "vrais" tableaux pour une manipulation ultérieure.

Cela est même mentionné dans Javascript : Le Guide Définitif .

La question est de savoir pourquoi ce schéma est si fréquent. Pourquoi ne pas préférer le type intégré Array dans tous ces cas ?

7voto

CMS Points 315406

Eh bien, en parlant de noyau dur Les objets Javascript, les arguments est un bon exemple pour en parler.

Dans ce cas, il s'agit d'un objet de type tableau depuis le début, apparaissait déjà dans la spécification ECMAScript 1e édition comme un simple objet.

Pourquoi ? Je pense qu'à l'époque, il n'y avait que quatre intégrés. Array Plus tard, la modification a été proposée, mais Microsoft (qui fait partie du comité TC39) ne l'a pas approuvée, par crainte que le système de gestion de l'information ne soit trop compliqué. la rupture du web a toujours été présent.

Je vais maintenant objets hôtes le DOM, NodeLists Je pense qu'ils ne voulaient pas utiliser la langue maternelle. Array en raison du comportement dynamique de ces objets.

NodeLists sont généralement en direct leur structure reflète tout changement sur la structure DOM sous-jacente...

Personnellement, j'aime les objets de type tableau, parce qu'ils sont vraiment légers. Avant ECMAScript 5, il y avait beaucoup de restrictions dans les méthodes de base, concernant l'utilisation d'objets de type tableau définis par l'utilisateur.

Par exemple, le apply de l'ECMAScript <= 3, n'autorisait qu'un tableau de réels ou un objet d'arguments comme deuxième argument, maintenant en ES5, ce qui suit est possible :

var arrayLike = {0: 'hello ', 1:'world', length:2};
(function (a,b) { alert(a+b); }).apply(null, arrayLike);

Voir aussi :

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