将关联数组声明为一个新的Array()与将关联数组声明为对象{}相同?
问题描述:
在两种情况下对象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://*.com/questions/8067590/associative-array-versus-object-in-javascript的副本 – nullability