Wie werden Javascript-Arrays implementiert?

Namely, wie funktioniert der folgende Code:

var sup = new Array(5);
sup[0] = 'z3ero';
sup[1] = 'o3ne';
sup[4] = 'f3our';
document.write(sup.length + "<br />");

output '5' für die Länge, wenn Sie nur verschiedene Elemente gesetzt haben?

Mein 'Problem' mit diesem Code ist, dass ich nicht verstehe, wielength ändert sich, ohne ein @ aufzurufgetLength() oder einsetLength() Methode. Wenn ich eine der folgenden Aktionen ausführe:

a.length
a['length']
a.length = 4
a['length'] = 5

auf einem Nicht-Array-Objekt verhält es sich wie ein Diktat- / Assoziativ-Array. Wenn ich das für das Array-Objekt mache, hat es eine besondere Bedeutung. Welcher Mechanismus in JavaScript ermöglicht dies? Hat Javascript eine Art Eigenschaftensystem, das @ übersetz

a.length
a['length']

in "get" Methoden und

a.length = 4
a['length'] = 5

in "set" Methoden?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage