Tworzenie obiektów podobnych do tablicy w JavaScript

W JavaScript istnieją obiekty, które udają tablice (lub są „podobne do tablicy”). Takie obiekty sąarguments, NodeLists (zwrócone zgetElementsByClassNameitp.) oraz obiekty jQuery.

Gdyconsole.logged, pojawiają się jako tablice, ale tak nie jest. Wiem, że aby być podobnym do tablicy, obiekt musi miećlength własność.

Zrobiłem więc „obiekt” w ten sposób:

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

var test = new foo;

Kiedy jaconsole log(test), Dostaję (zgodnie z oczekiwaniami) afoo obiekt. Mogę go „przekonwertować” na tablicę za pomocą

Array.prototype.slice.call(test)

Ale nie chcę go konwertować, chcę, żeby był podobny do tablicy. Jak zrobić obiekt przypominający tablicę, a więc kiedy jestconsole.logged, pojawia się jako tablica?

Próbowałem ustawieniafoo.prototype = Array.prototype, aleconsole.log(new foo) nadal pokazuje afoo obiekt, a nie tablica.