私は奇妙なことにつまずいた。
関数を介して属性の値を取得できるモデル クラスがあります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}dthis.model.get('layerIds')
しかし、このコードを実行すると、ログには次のように表示されます。
{mapLayer: 43}
どうしてこれなの?Javascript 変数は、コピーされた値を追跡し、他の変数のいずれかが変更された場合に自身の値を更新するのはなぜですか?
そして、どうすればこれを止めることができますか?