JavaScript - 如何通过引用创建包含对象的数组?

时间:2010-09-23 10:42:30

标签: javascript arrays pass-by-reference openlayers

我正在使用JavaScript Mapping Library - OpenLayer来创建标记叠加层。 我想动态控制标记:添加新标记并从图层中删除现有标记。

向图层添加新标记的方法是使用以下命令:

markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));

如您所见,初始化参数仅包含坐标和图标图像,而不包含id,甚至不包含可选参数。

为了控制我想要创建二维数组的标记,它包含标记数组按引用和ID数组。

然后,当我想从图层中删除标记时,命令将只是:

markers.removeMarker(ArrayMarkers[i]);

如何通过引用将元素推送到JavaScript数组?

如何通过引用运行ArrayMarkers元素?

2 个答案:

答案 0 :(得分:4)

尝试:

var ArrayMarkers = [];
var myMarker = new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon);
markers.addMarker(myMarker);
ArrayMarkers.push(myMarker);

基本上,Javascript通常使用引用来传递对象。您已经将引用传递给库。您可以使用相同的技术。

答案 1 :(得分:1)

在JavaScript中,你不能选择按引用值来推送变量......这是根据变量的类型自动完成的。

我猜你的标记是对象。因此,他们将通过引用推入阵列。 ids是String,它们将按值推送。