Was ist der Unterschied zwischen den folgenden Array-Definitionen?
var myArray = [];
var myArray = {};
var myArray = new Array();
javascript
arrays
Pinkie
quelle
quelle
myObject["someValue"]
odermyObject.someValue
. Das leere Objekt, das von{}
will erstellt wird, hat natürlich nicht diese Eigenschaften, aber Sie können sie auf die gleiche Weise zuweisen:myObject.someValue = "hello!"
var a = new Array(5)
undvar b = [5]
, danna
≠b
(daa.length
= 5 währendb.length
= 1,a[0]
istundefined
währendb[0]
5 ist und so weiter.)var a;
undvar a = {};
das gleiche?var myObject = {};
ist äquivalent zu varmyObject = new Object();
Das zweite Beispiel ist also kein
Array
allgemeinesObject
.Dies kann verwirrend werden, ebenso
Array
wie eine Klasse undObject
eine Klasse - genauer gesagtArray
eine Unterklasse vonObject
. Im Großen und Ganzen ist dieObject
Semantik also anwendbar aufArray
:quelle
o['property1'] = 'property value'
fügen Sie dem Array kein Element hinzu, sondern legen eine Eigenschaft des Array-Objekts fest . Verwirrt? Ich habe es dir gesagt;) In JavaScript ist im Grunde alles ein Objekt. Andere Aufgaben, wieArray
,RegExp
... erweitern das Basisobjekt mit weiteren Funktionen. Ein einfaches, leeres Objekt wird mit den geschweiften Klammern erstelltplain_obj = {}
.