<分区>
我偶然发现了一件奇怪的事情。
我有一个模型类,您可以在其中通过 model.get(attributeName)
函数获取属性值。
所以我在 View 中这样做了:
var mapModel = new Ex.Models.MapModel(model);
var view = new Ex.Views.MapView(mapModel);
var d = this.model.get('layerIds');
d.mapLayer = view.getId();
console.log("layerIds", this.model.get('layerIds'));
属性 layerIds.mapLayer
默认设置为 null
。如果我将它设置为 View ID(例如 43
),我希望 console.log
仍会返回 {mapLayer: null}
因为我创建了变量 d
来复制 this.model.get('layerIds')
的值并使用独立于模型值的值。
但是如果我执行这段代码,日志会显示:
{mapLayer: 43}
这是为什么?为什么 Javascript 变量会跟踪它们复制的值并在其他值发生变化时更新它们自己的值?
如何阻止这一切?