Criando objetos do tipo array em JavaScript

Em JavaScript, existem objetos que fingem ser matrizes (ou são "tipo array"). Tais objetos sãoarguments, NodeLists (retornado degetElementsByClassName, etc.) e objetos jQuery.

Quandoconsole.logEles aparecem como matrizes, mas não são. Eu sei que, a fim de ser array-like, um objeto deve ter umlength propriedade.

Então eu fiz um "objeto" assim:

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

var test = new foo;

Quando euconsole log(test), Eu recebo (como esperado) umfoo objeto. Eu posso "convertê-lo" para um array usando

Array.prototype.slice.call(test)

Mas eu não quero convertê-lo, quero que ele seja parecido com um array. Como eu faço um objeto tipo array, de modo que quando éconsole.logged, aparece como um array?

Eu tentei definirfoo.prototype = Array.prototype, masconsole.log(new foo) ainda mostra umfoo objeto, e não uma matriz.

questionAnswers(5)

yourAnswerToTheQuestion