Jaka jest różnica między każdą z poniższych definicji tablic.
var myArray = [];
var myArray = {};
var myArray = new Array();
javascript
arrays
Mały palec u ręki
źródło
źródło
myObject["someValue"]
lubmyObject.someValue
. Pusty obiekt stworzony przez{}
will oczywiście nie ma tych właściwości, ale możesz je przypisać w ten sam sposób:myObject.someValue = "hello!"
var a = new Array(5)
ivar b = [5]
, toa
≠b
(ponieważa.length
= 5 whileb.length
= 1,a[0]
toundefined
whileb[0]
to 5 itd.)var a;
ivar a = {};
to samo?var myObject = {};
jest odpowiednikiem varmyObject = new Object();
Tak więc drugi przykład nie jest
Array
ogólnym, ale ogólnymObject
.Może to być mylące, ponieważ
Array
jest to klasa iObject
jest klasą - a dokładniejArray
jest to podklasaObject
. Tak więc, ogólnie rzecz biorąc,Object
semantyka ma zastosowanie doArray
:źródło
o['property1'] = 'property value'
nie dodajesz elementu do tablicy, ale ustawiasz właściwość obiektu tablicy . Zmieszany? Mówiłem ci;) W JavaScript w zasadzie wszystko jest obiektem. Inne obiekty, takie jakArray
,RegExp
... rozszerzają podstawowy obiekt o dodatkową funkcjonalność. Zostanie utworzony zwykły, pusty obiekt za pomocą nawiasów klamrowychplain_obj = {}
.