¿Por qué necesito copiar una matriz para usar un método en ella?

Puedo usarArray() para tener una matriz con un número fijo de entradas indefinidas. Por ejempl

Array(2); // [empty × 2] 

Pero si voy y uso el método de mapa, digamos, en mi nueva matriz, las entradas aún no están definidas:

Array(2).map( () => "foo");  // [empty × 2] 

Si copio la matriz, entonces el mapa funciona:

[...Array(2)].map( () => "foo");  // ["foo", "foo"]

¿Por qué necesito una copia para usar la matriz?

Respuestas a la pregunta(4)

Su respuesta a la pregunta