JavaScript “new Array(n)” et “Tableau.le prototype.carte” étrangeté

J'ai observé cela dans Firefox 3.5.7/Firebug-1.5.3 et Firefox 3.6.16/Firebug-1.6.2

Quand j'ai le feu jusqu'à Firebug:

    >>> x = new Array(3)
    [undefined, undefined, undefined]
    >>> y = [undefined, undefined, undefined]
    [undefined, undefined, undefined]

    >>> x.constructor == y.constructor
    true

    >>> x.map(function(){ return 0; })
    [undefined, undefined, undefined]
    >>> y.map(function(){ return 0; })
    [0, 0, 0]

Ce qui se passe ici? Est-ce un bug, ou suis-je l'incompréhension comment utiliser new Array(3)?

  • Je n'ai pas les mêmes résultats que vous voyez à partir de la matrice de notation littérale. Je reçois toujours pas défini au lieu de 0. Je ne reçois que des 0 résultat si j'ai mis quelque chose comme var y = x.map(function(){return 0; });, et j'obtiens ceci pour les new Array() la méthode et le littéral de tableau. Je l'ai testé dans Firefox 4 et Chrome.
InformationsquelleAutor rampion | 2011-03-31