在兩種情況下對象whiteStripes
是否完全相同?將關聯數組聲明爲一個新的Array()與將關聯數組聲明爲對象{}相同?
var whiteStripes = {'Jack' : 'White', 'Meg' : 'White'};
var whiteStripes = new Array();
whiteStripes['Jack'] = 'White';
whiteStripes['Meg'] = 'White';
在兩種情況下對象whiteStripes
是否完全相同?將關聯數組聲明爲一個新的Array()與將關聯數組聲明爲對象{}相同?
var whiteStripes = {'Jack' : 'White', 'Meg' : 'White'};
var whiteStripes = new Array();
whiteStripes['Jack'] = 'White';
whiteStripes['Meg'] = 'White';
雖然你仍然可以在兩種情況下訪問屬性的方法相同(whiteStripes['Jack']
)在聲明whiteStripes = new Array();
你說的它擁有所有的特性,像length
例如數組的屬性。如果您不打算將它用作真實數組(pop
,push
,length
等),則不要使用JavaScript數組。
不,它不是完全一樣的東西。
兩者都會工作,因爲一個數組是也是的一個對象,但是如果你只想要一個對象,你不應該創建一個數組來獲得一個。
這將導致完全一樣的東西被創造:
var whiteStripes = {'Jack' : 'White', 'Meg' : 'White'};
var whiteStripes = new Object();
whiteStripes['Jack'] = 'White';
whiteStripes['Meg'] = 'White';
有在JavaScript – Musa
'VAR白色條紋=新的對象()沒有關聯數組;'將是同樣的事情,但不能以'新陣列()'。 – Pointy
http://stackoverflow.com/questions/8067590/associative-array-versus-object-in-javascript的副本 – nullability