Perché Array.prototype è progettato per essere un array completamente funzionale?

5

Nella visualizzazione seguente,

Cisonodueoggettiarray(cars&bikes)creaticonlasintassidisotto,

varcars=newArray("Saab", "Volvo", "BMW");
var bikes = ["Honda", "Yamaha"];

il cui valore della proprietà [[Class]] è Array .

Inoltre, abbiamo anche Array.prototype , che è una matrice completamente funzionale, come mostrato di seguito,

> Object.prototype.toString.call(Array.prototype);
      "[object Array]"
> Array.prototype[0] = "Volvo";
      "Volvo"
> Array.prototype[1] = "BMW";
      "BMW"
> Array.prototype.length;
      2

Generalmente, quando metti qualcosa su prototype , ogni istanza dell'oggetto condivide le stesse proprietà.

Domanda:

Con proprietà length come membro, qual è l'idea alla base di Array.prototype come array completamente funzionale?

    
posta overexchange 06.12.2015 - 15:00
fonte

1 risposta

2

Il prototipo di array è di per sé un array completamente funzionale, poiché deve contenere tutte le funzionalità necessarie affinché un oggetto funzioni come un array. Le istanze Array ereditano tutte le loro funzionalità attraverso il prototipo.

In base alla specifica :

The Array prototype object is itself an array; its [[Class]] is "Array", and it has a length property (whose initial value is +0) and the special [[DefineOwnProperty]] internal method described in 15.4.5.1.

    
risposta data 10.12.2015 - 13:37
fonte

Leggi altre domande sui tag