我偶然发现了一件奇怪的事情。
我有一个模型类,您可以在其中通过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 变量会跟踪其复制的值并更新自己的值?
这怎么能阻止呢?