Creando objetos tipo matriz en JavaScript

En JavaScript, hay objetos que pretenden ser arreglos (o son "como arreglos"). Tales objetos sonarguments, NodeLists (devuelto degetElementsByClassName, etc.), y objetos jQuery.

Cuandoconsole.logGed, aparecen como matrices, pero no lo son. Sé que para ser como una matriz, un objeto debe tener unalength propiedad.

Así que hice un "objeto" como este:

function foo(){
    this.length = 1;
    this[0] = "bar";
}

var test = new foo;

Cuando yoconsole log(test), Recibo (como se espera) unfoo objeto. Puedo "convertirlo" a una matriz usando

Array.prototype.slice.call(test)

Pero, no quiero convertirlo, quiero que sea como un arreglo. ¿Cómo hago un objeto similar a una matriz, de modo que cuando estáconsole.logGed, aparece como una matriz?

Intenté establecerfoo.prototype = Array.prototype, peroconsole.log(new foo) todavía muestra unfoo Objeto, y no una matriz.