以下代码用于将事件映射到对象:
//shortened the function for better visibility
moveToolbar.on("graphic-move-stop", function (evt) {
oldGraphicMove = evt.graphic;
oldGraphicMove.geometry.rings[0][0] = 42173;
newGraphicMove = evt.graphic;
});
但是,当更改oldGraphicMove的值时,即使没有对事件本身进行任何更改,事件的值也会更改为模仿它。有什么方法可以阻止这种情况吗?
答案 0 :(得分:0)
问题是oldGraphicMove指向与evt.graphic相同的对象。 你需要制作一份evt.graphic。
oldGraphicMove = JSON.parse(JSON.stringify(evt.graphic));
应该可以解决问题。
答案 1 :(得分:0)
通过引用传递对象。要通过值传递,您可以使用匿名函数,或者需要克隆对象
@Override
public void onPause(){
Intent i = getIntent();
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
//disable rencent app button
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.moveTaskToFront(getTaskId(), 0);
super.onPause();
}