我一直在查找Google地图API的MVCArray
和Array
之间的差异,但我没有找到任何具体内容。
我有点认为MVCArray
是一个更好的选择,因为它跟踪变化(不知何故)并且有某种特殊事件。并且一些相同的方法具有略微不同的名称,例如, array.length
和MVCarray.getLength()
。
但有人可以在外行人的术语中解释两者之间的明显差异吗?如果你能举出一些简单的例子来让它更容易理解,那就太好了。
谢谢!
答案 0 :(得分:3)
要解释MVCArrays,了解MVCObjects非常重要。
MVCObject是" keystone"之一类谷歌地图是建立在。它就像一个普通的对象,它的属性带有setter和getter(到目前为止没什么特别的),但它的特殊之处在于:
因此,基本上,MVCObjects是可观察的可绑定对象。
MVCArray继承自MVCObject,因此您可以设置或获取其属性,绑定其中一些属性,被其他对象绑定等等。但是,它还实现了一些附加功能
push
,pop
,forEach
等,所以有几个google.maps方法可以接受MVCArray或者是本机数组,因为它将使用相同的方法来遍历它们。getArray
方法访问),这是一个本机js数组。如上所述的类似数组的方法将被转发到此数组。因此,基本上,MVCArrays是可观察的数组。由于它继承自MVCObject,因此它们的属性也是可绑定的
答案 1 :(得分:0)
感谢您的投入。根据我的阅读并尝试使用array
和MVCarray
更改折线来存储不同的坐标,我发现:
由于MVCarray
附加了相关事件(insert
,remove
,
set
)所以当我更改任何值时,该行会立即更新
旧的线路消失了。
当array
中的值更改时,新行也会出现,但是
保留旧行。
因此,使用MVCarray
会更好