我偶然发现了一件奇怪的事情。
我有一个模型类,您可以在其中通过model.get(attributeName)
函数获取属性值。
所以我这样做是为了:
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
。如果我将它设置为视图 ID(例如43
),我希望它console.log
仍然会返回{mapLayer: null}
,因为我创建了变量d
来复制值this.model.get('layerIds')
并使用该值独立于模型值。
但是,如果我执行这段代码,日志会显示:
{mapLayer: 43}
为什么是这样?如果其他变量之一发生更改,为什么 Javascript 变量会跟踪其复制的值并更新自己的值?
这怎么能阻止呢?