Array-ähnliche Objekte in JavaScript erstellen

In JavaScript gibt es Objekte, die sich als Arrays ausgeben (oder "array-like" sind). Solche Objekte sindarguments, NodeLists (zurückgegeben vongetElementsByClassNameusw.) und jQuery-Objekte.

Wannconsole.logSie erscheinen als Arrays, sind es aber nicht. Ich weiß, dass ein Objekt ein haben muss, um Array-like zu seinlength Eigentum.

Also habe ich so ein "Objekt" gemacht:

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

var test = new foo;

Wenn ichconsole log(test)Ich bekomme (wie erwartet) einefoo Objekt. Ich kann es mit "konvertieren" in ein Array

Array.prototype.slice.call(test)

Aber ich möchte es nicht konvertieren, ich möchte, dass es Array-ähnlich ist. Wie erstelle ich ein Array-ähnliches Objekt, damit wenn es istconsole.logged, erscheint es als Array?

Ich habe versucht, Einstellungen vorzunehmenfoo.prototype = Array.prototype, aberconsole.log(new foo) zeigt noch einefoo Objekt und kein Array.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage