Array-ähnliche Objekte in JavaScript erstellen
In JavaScript gibt es Objekte, die sich als Arrays ausgeben (oder "array-like" sind). Solche Objekte sindarguments
, NodeList
s (zurückgegeben vongetElementsByClassName
usw.) und jQuery-Objekte.
Wannconsole.log
Sie 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.log
ged, erscheint es als Array?
Ich habe versucht, Einstellungen vorzunehmenfoo.prototype = Array.prototype
, aberconsole.log(new foo)
zeigt noch einefoo
Objekt und kein Array.